当前位置:   article > 正文

一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。 Input 第一行两个字

一个字符串a的子串被定义成从a中顺次选出若干个字符构成的串。如a=“cdaad" ,顺次

一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。

Input

第一行两个字符串用空格分开。

Output

最长子串的长度。

  1. # include <iostream>
  2. # include <cstring>
  3. using namespace std;
  4. int f[2010][2010];
  5. char a[2010],b[2010];
  6. int max(int a,int b)
  7. {
  8. if (a>=b) return a;
  9. return b;
  10. }
  11. int main()
  12. {
  13. int i,j,len1,len2;
  14. cin>>a>>b;
  15. len1=strlen(a);
  16. len2=strlen(b);
  17. for(i=1;i<=len1;i++)
  18. {
  19. for(j=1;j<=len2;j++)
  20. {
  21. if (a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1]+1;
  22. else f[i][j]=max(f[i-1][j],f[i][j-1]);
  23. }
  24. }
  25. cout<<f[len1][len2];
  26. return 0;
  27. }

Sample Input

abccd aecd

Sample Output

3

HINT

两个串的长度均小于2000



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/193674
推荐阅读
相关标签
  

闽ICP备14008679号