#include<bits/stdc++.h>
using namespace std;
string a,b;int len_a,len_b;
int dp[2010][2010];
int dfs(int i_a,int i_b){
if(i_a==len_a and i_b==len_b)
return 0;
if(i_a==len_a or i_b==len_b)
return 2000;
if(dp[i_a][i_b])return dp[i_a][i_b];
int ans=dfs(i_a,i_b+1)+1;
ans=min(ans,dfs(i_a+1,i_b)+1);
ans=min(ans,dfs(i_a+1,i_b+1)+(a[i_a]==b[i_b]?0:1));
return dp[i_a][i_b]=ans;
}
signed main(){
cin>>a>>b;
len_a=a.length(),len_b=b.length();
cout<<dfs(0,0);
}
#8答案是1212,我的运行结果是1213,是逻辑哪里错了吗?