题目
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
示例 1:
输入:
first = "pale"
second = "ple"
输出: True
示例 2:
输入:
first = "pales"
second = "pal"
输出: False
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/one-away-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
分条件模拟
class Solution {
public boolean oneEditAway(String s1, String s2) {
int count=0;
if (Math.abs(s1.length() - s2.length()) == 1) {
//增删
if(s1.length()>s2.length()){
String s=s1;
s1=s2;
s2=s;
}
for(int i=0;i<s1.length();++i){
if(count==0){
if(s1.charAt(i)!=s2.charAt(i)){
count++;
if(s1.charAt(i)!=s2.charAt(i+1)){
count++;
}
}
}else{
if(s1.charAt(i)!=s2.charAt(i+1)){
count++;
}
}
}
if(count<=1){
return true;
}
} else if (s1.length() == s2.length()) {
for(int i=0;i< s1.length();++i){
if(s1.charAt(i)!=s2.charAt(i))
count++;
}
if(count<=1){
return true;
}
}
return false;
}
}