Son cadena más larga

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

5 cuerdas común más larga (100)

Dadas dos cadenas a, b, k oportunidad anterior en una cadena de caracteres que se desea modificar, de manera que la subcadena común más larga modificado dos cadena más larga. Cada modificación puede elegir una, una posición arbitraria en una cadena b modificar una cadena de caracteres arbitraria.

Formatos de entrada:

La primera línea incluye un número entero positivo k.
La segunda y tercera filas, respectivamente de la cadena de entrada a, b. (La longitud de cada cuerda no exceda 500)

Los formatos de salida:

La salida es un número entero que representa la longitud de la subcadena más larga común de dos cadenas modificadas.

de entrada de la muestra:

5
aaaaa
bbbbb

Resultado de muestra:

5

Aceptado

#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; 
}

a [0], b [0] es la cabeza, en busca de encontrar el máximo y tal vez por la primera cadena del primer hijo, y una [0], b [1] ... entonces a [1], b [0] .. Por lo tanto, el valor máximo de la suma es el máximo de toda la cadena hijo.

Supongo que te gusta

Origin www.cnblogs.com/czl411/p/12607506.html
Recomendado
Clasificación