# include bits/stdc.husingnamespacestd; int dp[10001][1001]; s1[1001],s2[1001]; int main () {string s1,s2; //x,y; cin s1 s2; //x y; //——3————33543——表演开始3————3354————3—— intn=S1.size (; //S1的长度int m=s2.size (); 剪切//S2的长度for (inti=1; i=n; I ) for(intj=1; j=m; j () if ) S1[I-1]==S2[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[n][m] endl; 返回0; (/*核心代码if ) S1[I]==S2[j] ) {dp[i][j]=dp[i - 1][j - 1] 1; }elseif(S1[I]!=S2[j](DP[I][j]=max ) DP[I-1][j],dp[i][j - 1] ); ()/)输入: ABCBDABBDCABA输出:4) /