肝了近1小时,才成功把该BP方法的逻辑整明白,不能不说力扣官方测试用例设计的滴水不漏,
提交的代码: 9 小时前
语言: java
class Solution {
public boolean oneEditAway(String s1, String s2) {
boolean flag = true;
int count = 0;
if(s1.length()==0 && s2.length()==0)return true;
if(s1.length()==s2.length()){// 判断能否一次替换
for(int i=0;i1)return false;
System.out.println(index);
flag = sortEqual(s1,s2,index);
}else if(s2.length()==s1.length()-1){
for(int i=0; i1)return false;
//System.out.println(index);
flag = sortEqual(s2,s1,index);
}else flag=false;
// for(int i=0; i<(s1.length()>s2.length()?s1.length():s2.length()); ++i){
//
// }
}
return flag;
}
public static boolean sortEqual(String s1, String s2, int index){
if(index == s2.length()-1){
for(int i=0;ii-1
return false;
}
return true;
}else{
for(int i = 0,j=0; i < s1.length(); i++){
System.out.println("here");
if(i
BP通过后思考优化然后突发奇想,之前刚做的算法题中用到的双指针(解决了力扣算法题之有序整数数组元素原地去重那道题),我可以把该思路应用到该题中来对两个字符串数组进行对比并作相应操作,写下伪代码后困得不行了,就睡了,今早上起来补上了,成功通过!
源码如下
提交的代码: 3 小时前
语言: java
法一
class Solution {
public boolean oneEditAway(String s1, String s2) {
boolean flag = false;
int l1 = s1.length();
int l2 = s2.length();
if(l1==0 && l2==0)flag = true;
else if(l1==0&&l2==1)return true;
else if(l1==1&&l2==0)return true;
else if(l1==l2){
int count = 0 ;
for(int i=0; i1)flag = false;
else if(fast==slow||fast==slow+1)flag = true;
return flag;
}
}
欢迎各位热爱做题的朋友一起讨论, 


