题目描述
牛牛有两个字符串(可能包含空格),他想找出其中最长的公共连续子串的长度,希望你能帮助他。例如:两个字符串分别为"abede"和"abgde",结果为2。
输入
每组数据包括两行,每行为一个字符串。
输出
输出最长的公共连续子串的长度。
样例输入 Copy
abede
abgde
样例输出 Copy
2
#include<bits/stdc++.h> using namespace std; int fun(char p[],char q[],int c[50][50]) { int max=0; for(int i=0;i<strlen(p);i++) { c[0][i]=0; } for(int i=0;i<strlen(q);i++) { c[i][0]=0; } for(int i=0;i<strlen(p);i++) { for(int j=0;j<strlen(q);j++) { if(i==0||j==0) { if(p[i]==q[j]) c[i][j]=1; } else { if(p[i]==q[j]) { c[i][j]=c[i-1][j-1]+1; } } if(c[i][j]>max) { max=c[i][j]; } } } return max; } int main() { char p[100]; char q[100]; int c[50][50]; while(cin>>p) { cin>>q; fun(p,q,c); cout<<fun(p,q,c)<<endl; } return 0; }