设为首页 加入收藏

TOP

最长公共子序列
2015-11-21 01:05:11 来源: 作者: 【 】 浏览:2
Tags:最长 公共 序列

?

1210: 最长公共子序列

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 10 Solved: 8
[Submit][Status][Web Board]

Description

给出两个字符串,求出这样的一个最长的公共子序列的长度:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。
如:
ABCBDAB
BDCABA
它们的最长公共子序列就是 BCBA,长度为4。

?

Input

每组两个长度小于100的字符串。

?

Output

输出最长公共子序列的长度。

?

Sample Input

ABCBDAB BDCABA

Sample Output

4
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; int main() { string str1,str2; int dp[200][200]; while(cin>>str1>>str2) { memset(dp,0,sizeof(dp)); int la = str1.length(); int lb = str2.length(); for(int i = 1; i <= la; i++) for(int j = 1; j <= lb; j++) { if(str1[i - 1] == str2[j - 1]) { dp[i][j] = dp[i-1][j-1]+1; } else dp[i][j] = max(dp[i-1][j],dp[i][j-1]); } cout<
      
       

?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HLJOJ1214(最短路) 下一篇POJ 1321 棋盘问题(DFS)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: