最优包含
作者:
zplzh
,
2024-04-12 19:17:49
,
所有人可见
,
阅读 2
#include <bits/stdc++.h>
#define int long long
#define rep(i,a,n) for(int i =a;i<=n;i++)
#define per(i,a,n) for(int i =n;i>=a;i--)
#define fs first
#define sc second
#define MAXX 0x3f3f3f3f
using namespace std;
int dp[1005][1005];//s中前i个位置有j个和t相同的字符 最小操作的次数
int a[105][105];
void solve(){
string s,t;
cin>>s>>t;
int lens = s.length(), lent = t.length();
rep(i,1,lent) dp[0][i] = MAXX;
rep(i,1,lens) dp[i][0] = 0;
rep(i,1,lens){
rep(j,1,lent){
if(s[i-1]==t[j-1]) dp[i][j] = dp[i-1][j-1];
else dp[i][j] = min(dp[i-1][j-1]+1,dp[i-1][j]); //从上一种状态转移,因为有两种所以就取两者最小
}
}
cout<<dp[lens][lent]<<endl;
}
signed main(){
int t = 1;
//cin>>t;
while(t--) solve();
return 0;
}