#include <iostream> #include <vector> using namespace std; int main() { string s1,s2; cin>>s1; cin>>s2; int n1=s1.size(); int n2=s2.size(); vector<vector<int>> dp(n1+1,vector(n2+1,0)); for(int i=1;i<n1+1;i++){ dp[i][0]=i; } for(int i=1;i<n2+1;i++){ dp[0][i]=i; } for(int i=1;i<n1+1;i++){ for(int j=1;j<n2+1;j++){ if(s1[i-1]==s2[j-1]){ dp[i][j]=dp[i-1][j-1]; }else{ //编辑距离等于左、上、左上编辑距离最小值+1 dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1; } } } cout<<dp[n1][n2]; return 0; } // 64 位输出请用 printf("%lld")