题目链接:https://leetcode-cn.com/problems/one-away-lcci/
题目如下:
class Solution {
public:
bool oneEditAway(string first, string second) {
//情况1、替换:两个字符串长度相等
//情况2 、增加/删除:长=短+1
int m=first.size(),n=second.size();
if(abs(m-n)>1) return false;
int i=0,j=0;
//遇到第一个不匹配的字符,则跳出循环
while(i<m&&j<n&&first[i]==second[j]){
i++;
j++;
}
if(m==n){
//若两个长度相等,则只允许一个字母出现不同
i++;
j++;
}else if(m>n){
//说明第一个string多一个
i++;
}else{
//说明第二个string多一个
j++;
}
//完成后继续前行
while(i<m&&j<n){
if(first[i]==second[j]){
i++;j++;}
else return false;
}
return true;
}
};