Тесты проходит, с одинаковой длинной тоже, но валя утверждает что для одинаковой длинны не работает.
package com.javarush.task.task39.task3909;
/*
Одно изменение
*/
public class Solution {
public static void main(String[] args) {
//System.out.println(isOneEditAway("a",""));
String s1="abcd";
String s2="abc";
String s3="abcde";
String s4="abed";
String s5="abCd";
String s6="abCD";
System.out.println(isOneEditAway(s1,s2));//true
System.out.println(isOneEditAway(s1,s3));//true
System.out.println(isOneEditAway(s2,s3));//false
System.out.println(isOneEditAway(s1,s4));//true
System.out.println(isOneEditAway(s1,s5));//true
System.out.println(isOneEditAway(s1,s6));//false
//System.out.println(isOneEditAway());
}
public static boolean isOneEditAway(String first, String second) {
if (first.equals(second)) return true;
if (Math.abs(first.length()-second.length())>1) return false;
char[] firstStr=(first+"aa").toCharArray();
char[] secondStr=(second+"aa").toCharArray();
boolean editable=false;
//int correct=0;
for (int i = 0, j=0; i < firstStr.length&&j<secondStr.length; i++,j++) {
if (firstStr[i]!=secondStr[j])
if (editable)
return false;
else {
editable=true;
if (firstStr[i]==secondStr[j+1]) j++;
if (firstStr[i+1]==secondStr[i]) i++;
}
}
return true;
}
}