代码:
//
// main.cpp
// 31
//
// Created by 岳海林 on 2019/8/19.
// Copyright © 2019 岳海林. All rights reserved.
//
#include <iostream>
using namespace std;
const int N = 100;
char A[N],B[N];
int dp[N][N];
int main(int argc, const char * argv[]) {
int n;
gets(A+1);
gets(B+1);
long lenA = strlen(A+1);
long lenB = strlen(B+1);
for (int i = 0; i<=lenA; i++) {
dp[i][0] = 0;
}
for (int j = 0; j<lenB; j++) {
dp[0][j] = 0;
}
for (int i = 1; i<=lenA; i++) {
for (int j =1; j<=lenB; j++) {
if (A[i]==B[j]) {
dp[i][j] = dp[i-1][j-1]+1;
}else{
dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
}
}
}
cout<<dp[lenA][lenB]<<endl;
}
测试:
sadstory
adminsorry
6