肥肠肥肠 题解分享 · 2024/4/12
编辑距离 - 题解
``` import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String x=sc.next(); String y=sc.next(); int[][] dp=new int[x.length()+1][y.length()+1]; //初始化 for (int i = 0; i <= x.length(); i++) { dp[i][0]=i; } for (int j = 0; j <= y.length(); j++) { dp[0][j]=j; } for (int i = 0; i < x.length(); i++) { for (int j = 0; j < y.length(); j++) { if (x.charAt(i)!=y.charAt(j)){ dp[i+1][j+1]=Math.min( dp[i][j]+1 , Math.min( dp[i][j+1]+1,dp[i+1][j]+1 ) ); }else{ dp[i+1][j+1]=dp[i][j]; } } } System.out.println(dp[x.length()][y.length()]); } } ```
查看全文
0 0 1 2
李老八 题解分享 · 2024/4/15
编辑距离 - 题解
``` #include<iostream> #include<string.h> using namespace std; string a; string b; int dp[2002][2002]; int main() { getline(cin,a); getline(cin,b); int s1=a.length(); int s2=b.length(); for(int i=0;i<=s1;i++) { dp[i][0]=i; } for(int i=0;i<=s2;i++) { dp[0][i]=i; } for(int i=1;i<=s1;i++) { for(int j=1;j<=s2;j++) { if(a[i-1]!=b[j-1]) dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1; else dp[i][j]=min(min(dp[i][j-1],dp[i-1][j-1]),dp[i-1][j-1]-1)+1; } } cout<<dp[s1][s2]; } ```
查看全文
0 0 1 1
1693758898 题解分享 · 2025/4/11
编辑距离 - 题解
``` #include<bits/stdc++.h> #define int long long using namespace std; const int N = 2001 ; int dp[N][N]; signed main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); string s1,s2;cin>>s1>>s2; int n = s1.size(); int m = s2.size(); for(int i=0;i<=s1.size();i++) dp[i][0] = i; for(int j=0;j<=s2.size();j++) dp[0][j] = j; for(int i=1;i<=s1.size();i++){ for(int j=1;j<=s2.size();j++){ if(s1[i-1] == s2[j-1]) dp[i][j] = dp[i-1][j-1]; else dp[i][j] = min({dp[i-1][j-1],dp[i-1][j],dp[i][j-1]})+1; } } cout<<dp[n][m]; return 0; } ```
查看全文
0 0 0 0