POJ 1458 - Common Subsequence(最长公共子串)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1458 - Common Subsequence(最长公共子串)相关的知识,希望对你有一定的参考价值。

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。

题目链接:http://poj.org/problem?id=1458

 

 

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 int ans,lena,lenb,f[201][201];
 8 //f[i][j]表示a匹配到i-1,b匹配到j-1 
 9 char a[210],b[210];
10 int main()
11 {
12     while(~scanf("%s%s",a,b))
13     {//特殊的读入技巧(不 
14         memset(f,0,sizeof(f));
15         lena = strlen(a);
16         lenb = strlen(b);
17         for(int i = 1;i <= lena;++ i)
18         {
19             for(int j = 1;j <= lenb;++ j)
20             {
21                 if(a[i-1] == b[j-1])
22                     f[i][j] = f[i-1][j-1] + 1;
23                 else
24                     f[i][j] = max(f[i-1][j],f[i][j-1]);
25             }
26         }
27         printf("%d\n",f[lena][lenb]);
28     }
29     return 0;
30 }

 

以上是关于POJ 1458 - Common Subsequence(最长公共子串)的主要内容,如果未能解决你的问题,请参考以下文章

POJ1458 Common Subsequence

POJ #1458 Common Subsequence

poj 1458 Common Subsequence(dp)

POJ 1458 - Common Subsequence(最长公共子串)

POJ1458 Common Subsequence —— DP 最长公共子序列(LCS)

HDU1159 && POJ1458:Common Subsequence(LCS)