最长公共子序列 nyoj-36
生活随笔
收集整理的這篇文章主要介紹了
最长公共子序列 nyoj-36
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最長公共子序列
時間限制:3000?ms ?|??內存限制:65535?KB 難度:3 描述tip:最長公共子序列也稱作最長公共子串(不要求連續),英文縮寫為LCS(Longest Common Subsequence)。其定義是,一個序列 S ,如果分別是兩個或多個已知序列的子序列,且是所有符合此條件序列中最長的,則 S 稱為已知序列的最長公共子序列。 輸入
接下來每組數據兩行,分別為待測的兩組字符串。每個字符串長度不大于1000.
#include<stdio.h>
#include<string.h>
int maxc[1002][1002];
int main()
{
?char s1[1002],s2[1002];
?int len1,len2,i,j,n;
?scanf("%d",&n);
?while(n--)
?{
??memset(maxc,0,sizeof(maxc));
??scanf("%s",s1);
??scanf("%s",s2);
??len1=strlen(s1);
??len2=strlen(s2);
??for(i=1;i<=len1;++i)
??{
???for(j=1;j<=len2;++j)
???{
????if(s1[i-1]==s2[j-1])
?????maxc[i][j]=maxc[i-1][j-1]+1;
????else
?????maxc[i][j]=maxc[i][j-1]>maxc[i-1][j]?maxc[i][j-1]:maxc[i-1][j];
???}
??}
??printf("%d\n",maxc[len1][len2]);
?}
?return 0;
}
轉載于:https://www.cnblogs.com/dongsheng/archive/2012/06/04/2534501.html
總結
以上是生活随笔為你收集整理的最长公共子序列 nyoj-36的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu软件位置(安装位置, 运行文
- 下一篇: CreateBindGroupNode.