动态规划问题,注意条件转移方程需要分情况讨论
字符相等时是从dp[i-1][j-1]转移过来
#include<iostream>
#include<math.h>

using namespace std;

int main(){
    
    string a,b;
    int dp[101][101];
    for(int i=0;i<101;i++){
        dp[i][0] = 0;
        dp[0][i] = 0;
    }
    
    cin>>a>>b;
    int len1 = a.size();
    int len2 = b.size();
    
    for(int i=1;i<=len1;i++){
        for(int j=1;j<=len2;j++){
            if(a[i-1]==b[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;
    
    return 0;
}