链接:力扣https://leetcode.cn/problems/one-away-lcci/
刚看到这个题,思路是写三个函数,判断三种情况。想了一下又觉得有点麻烦,去看了题解,真是大牛太多了,插入和删除可以看成是一样的,长的字符串删除一个变成短的,短的增加一个就变成长的。遍历字符串,逐个比较,用一个flag记录不同的次数。
class Solution {
public boolean oneEditAway(String first, String second) {
int firstlen=first.length();
int secondlen=second.length();
if(Math.abs(firstlen-secondlen)>1) return false;
if(firstlen>secondlen) return oneEditAway(second,first);
int m=0,n=0,idx=0;
while(m<firstlen&&n<secondlen&&idx<=1){
if(first.charAt(m)==second.charAt(n)){
m++;n++;
}else{
if(firstlen==secondlen){
m++;n++;idx++;
}else{
n++;idx++;
}
}
}
return idx<=1;
}
}