给你两个字符串 S 和 T, 判断他们是否只差一步编辑。
样例
例1:
输入: s = "aDb", t = "adb"
输出: true
例2:
输入: s = "ab", t = "ab"
输出: false
解释:
s=t ,所以他们不相差一次编辑的距离
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution {
public:
/**
* @param s: a string
* @param t: a string
* @return: true if they are both one edit distance apart or false
*/
bool isOneEditDistance(string &word1, string &word2) {
// write your code here
int m = word1.size();
int n = word2.size();
int dp[m+1][n+1];
for(int i = 0; i <= m; i++)
{
dp[i][0] = i;
}
for(int i = 0; i <= n; i++)
{
dp[0][i] = i;
}
for(int i = 1; i <= m; i++)
{
for(int j = 1; j <= n; j++)
{
if(word1[i-1] == word2[j-1])
{
dp[i][j] = dp[i-1][j-1];
}
else
{
dp[i][j] = min(dp[i-1][j], dp[i][j-1]);
dp[i][j] = min(dp[i][j], dp[i-1][j-1])+1;
}
}
}
return dp[m][n] == 1;
}
};