越发觉得自己很菜。。。
这道题参考了https://blog.csdn.net/jtjy568805874/article/details/53610545大佬的代码,自己没想出来,哭哭
#include <iostream>
#include <string>
using namespace std;
const int maxn = 1010;
int dp[maxn][maxn]; // dp[i][j] : s[0...i]和t上的最长公共子序列必须以t[j]结尾时有多长
int main(){
string s,t;
cin>>s>>t;
int len = s.length();
int ans = -1;
for(int i = 0;i < len;i++){ // 判断t串以i开头的子串与s匹配的最长子序列
int res = 0;
int temp = i;
for(int j = 0;j < len;j++){
if(s[j] == t[temp]){
temp++;
res++;
}
}
ans = max(ans,res);
}
printf("%d",len - ans);
system("pause");
return 0;
}