/*
abcfbc abfcab
programming contest
abcd mnp
abcdefgh abdcdaef
aaaaaabbbbbbccccccdddddd adabcd
aaaaaabbbbbbccccccdddddd adaaabbccdd
*/
//这题主要是从一个字符串中找出另一个字符串中最长的字串!要求在这个字符串中的下标序号为递增顺序!
//用动态规划来做就简单啦!
#include "iostream"
#include "string"
#include "algorithm"
using namespace std;
int dp[1010][1010];
int main()
{
string str1, str2;
int i, j, len1, len2;
while (cin >> str1 >> str2)
{
len1 = str1.length();
len2 = str2.length();
for (i = 1; i <= len1; i++)
for (j = 1; j <= len2; 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 << dp[len1][len2] << endl;
}
}
zoj 1733 Common Subsequence
最新推荐文章于 2017-08-25 10:26:46 发布