难度中等36收藏分享切换为英文关注反馈
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
示例 1:
输入: first = "pale" second = "ple" 输出: True
示例 2:
输入: first = "pales" second = "pal" 输出: False
class Solution {
public boolean oneEditAway(String first, String second) {
int delta = first.length()-second.length();
if(delta>=2||delta<=-2) return false;
// if(first.equals(second)) return true;
int cnt = 1;//only one chance
for (int i=0,j=0;i<first.length()&&j<second.length();++i,++j){
if(first.charAt(i)!=second.charAt(j)){
if(delta==1){
j--;
}
else if (delta == -1){
i--;
}
cnt--;
}
if(cnt<0) {
return false;
}
}
return true;
}
}