息子最長の文字列

Markdown在线编辑器 - www.MdEditor.com

5最長共通文字列(100)

二つの文字列が与えられ、B、文字の文字列におけるk前のチャンスを変更するので、最長共通部分は、二つの最も長い文字列を変更していること。それぞれの変更は、文字列B内の任意の位置に任意の文字列を変更し、選択することができます。

入力フォーマット:

最初の行は、正の整数kを含みます。
2行目と3行目、それぞれの入力文字列A、B。(各文字列の長さは500を超えません)

出力フォーマット:

出力は、修正二つの文字列の最長共通部分の長さを表す整数です。

サンプル入力:

5
AAAAA
BBBBB

出力例:

5

容認されました

#include <stdio.h>
#include <string.h> 
int main()
{   
    int k,i,j,len1,len2,t1,t2,sum,time,max=-1;
	char s1[505],s2[505]; 
    scanf("%d",&k);
    scanf("%s",&s1);
    scanf("%s",&s2);
    len1=strlen(s1);
    len2=strlen(s2);
for(i=0;i<len1;i++)
        for(j=0;j<len2;j++)
        {   
			t1=i;
            t2=j;
            sum=0;
            time=k;
            while(t1<len1&&t2<len2)
            {   
            while(t1<len1&&t2<len2&&s1[t1]==s2[t2])
              {
                t1++;
                t2++;
                sum++;
              }
              if(time>0)
              {  
	     t1++;
         t2++;
            sum++;
                time--;
              }
              else
              break;
             }
	 if(sum>max)
	 max=sum;   
        }  
    printf("%d",max);
    return 0; 
}

[0]、B [0]が最大と多分最初の息子の最初の文字列をを見つけることが検索、ヘッドであり、[0]、B [1] ...そして、[1]、B [0] ..そう、和の最大値は、すべての息子文字列の最大値です。

おすすめ

転載: www.cnblogs.com/czl411/p/12607506.html