DP-最长公共子序列-创新互联
思路:dp[i][j]的含义为str1[0..i]与str2[0..j]的最长公共子序列长度.
站在用户的角度思考问题,与客户深入沟通,找到宾县网站设计与宾县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、网页空间、企业邮箱。业务覆盖宾县地区。#include
#include
using namespace std;
const int maxn = 100;
int main()
{
string str1,str2;
cin>>str1;
cin>>str2;
int dp[maxn][maxn];
for(int i = 0; i < str1.length(); i++)
{
if(dp[i - 1][0] == 1)
{
dp[i][0] = 1;
continue;
}
if(str1[i] == str2[0])
{
dp[i][0] = 1;
}
else
dp[i][0] = 0;
}
for(int j = 0; j < str2.length(); j++)
{
if(dp[0][j -1] == 1)
{
dp[0][j] = 1;
continue;
}
if(str1[0] == str2[j])
{
dp[0][j] = 1;
}
else
dp[0][j] = 0;
}
for(int i = 1; i < str1.length(); i++)
{
for(int j = 1; j < str2.length(); j++)
{
if(str1[i] == str2[j])
dp[i][j] = max(max(dp[i -1][j],dp[i][j - 1]),dp[i-1][j-1]+1);
else
dp[i][j] = max(dp[i - 1][j],dp[i][j - 1]);
}
}
cout<
当前标题:DP-最长公共子序列-创新互联
新闻来源:http://cdiso.cn/article/dppjds.html