public List<char> findErrorWord(String a, String b) {
this.str_a = a.toCharArray();
this.str_b = b.toCharArray();
List<char> mRecWord = new ArrayList<>();
int m = str_a.length; // 5
int n = str_b.length; // 4
int[][] dp = new int[m+1][n+1]; //dp[5][4]
int i, j;
for (j = 0; j <= n; j++) {
dp[0][j] = j; // 填充边界
}
for (i = 1; i <= m; i++) {
dp[i][0] = i; // 填充边界
for (j = 1; j <= n; j++) {
if (str_a[i-1] == str_b[j-1]) {
dp[i][j] = dp[i-1][j-1];
}
else {
dp[i][j] = min(min(dp[i][j-1], dp[i-1][j]), dp[i-1][j-1]) + 1;
}
}
}
// dp[m][n]为右下角的值,回溯,相同则左上,不同则往小的
找出两个字符串中所有共同的字符_找出两个字符串不同的字符
![](https://img-home.csdnimg.cn/images/20240711042549.png)