
class Solution {
public boolean oneEditAway(String str1, String str2) {
//长度相同 则只能通过替换一个
//长度不同只能插入或者删除1个字符
//两个字符串长度不能差多余2 否则肯定不能通过一次替换
if (Math.abs(str1.length() - str2.length()) >= 2) {
return false;
}
if (str1.equals(str2)) {
return true;
}
int len1 = str1.length();
int len2 = str2.length();
int i = 0, j = 0, count = 0;
while (i < len1 && j < len2) {
if (str1.charAt(i++) == str2.charAt(j++)) {
continue;
}
count++;
if (count >= 2) {
return false;
}
//遇见不相同的字符的时候 ,长的字符串前进一下
if (len1 != len2) {
if (len1 > len2) {
j--;
} else {
i--;
}
}
}
return count < 2;
}
}