比较简单的动态规划 但是输入的时候出现了问题
不熟悉c++的输入 还是字符串没有搞懂 可怕
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int i,j,n,m,dp[1005][1005];
char s[1005],t[1005];
memset(dp,0,sizeof(dp));
scanf("%d%d",&n,&m);
/*for(i=0;i<n;i++){
scanf("%s",&s[i]);
}
for(i=0;i<n;i++){
scanf("%s",&t[i]);
}*/
cin>>s;
cin>>t;
for(i = 0; i < n; i++){
for(j = 0; j < m; j++){
if(s[i] == t[j]){
dp[i+1][j+1] = dp[i][j]+1;
}
else {
dp[i+1][j+1] = max(dp[i][j+1], dp[i+1][j]);
}
}
}
printf("%d\n",dp[n][m]);
return 0;
}