字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
示例 1:
输入:
first = "pale"
second = "ple"
输出: True
示例 2:
输入:
first = "pales"
second = "pal"
输出: False
bool oneEditAway(char* first, char* second)
{
int len1=strlen(first);
int len2=strlen(second);
int maxx=fmax(len1,len2);
int start=0;
if(fabs(len1-len2)>1)return false;
else if(len1==len2)
{
int ans=0;
for(int i=0;i<len2;i++)
{
if(first[i]!=second[i])ans++;
if(ans>1)return false;
}
}
else
for(int i=0,j=0;j<len2&&i<len1;)
{
while(j<len2&&i<len1&&first[i]!=second[j])
{
if(maxx==len1)i++;
else j++;
start++;
if(start>1)return false;
}
i++;
j++;
}
return true;
}