AcWing 902. 902. 最短编辑距离
原题链接
简单
作者:
Easene
,
2025-03-26 15:36:47
·黑龙江
,
所有人可见
,
阅读 1
import java.util.*;
import java.io.*;
public class Main
{
static final int N = 1010;
static int ans;
static int[][] f = new int[N][N];
static char[] a = new char[N], b = new char[N];
public static void main(String args[]) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter log = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
int n = Integer.parseInt(in.readLine());
String A = in.readLine();
for(int i = 1; i <= n; i++) a[i] = A.charAt(i - 1);
int m = Integer.parseInt(in.readLine());
String B = in.readLine();
for(int i = 1; i <= m; i++) b[i] = B.charAt(i - 1);
int ca = n, cb = m;
for(int i = 0;i <= m;i++) f[0][i] = i;
for(int i = 0;i <= n;i++) f[i][0] = i;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
f[i][j] = Math.min(f[i-1][j] + 1,f[i][j-1] + 1);
f[i][j] = Math.min(f[i][j],f[i - 1][j -1] + (a[i] == b[j] ? 0 : 1));
}
}
log.println(f[n][m]);
log.flush();
}
}