Can't tell why it's not verifying as far as I've tested it should work
package com.codegym.task.task39.task3909;
import java.util.ArrayList;
import java.util.List;
/*
One change
*/
public class Solution {
public static void main(String[] args) {
System.out.println(isOneEditAway("as", "")); // false
System.out.println(isOneEditAway("a", "")); // true
System.out.println(isOneEditAway("bc", "bd")); // true
System.out.println(isOneEditAway("dc", "da")); // true
}
public static boolean isOneEditAway(String first, String second) {
first = first.toLowerCase();
second = second.toLowerCase();
int len1 = first.length();
int len2 = second.length();
if (Math.abs(len1 - len2) > 1) return false;
int editCount = 0;
int i = 0, j = 0;
while (i < len1 && j < len2) {
if (first.charAt(i) != second.charAt(j)) {
if (editCount == 1) return false;
if (len1 > len2) i++;
else if (len1 < len2) j++;
else {
i++;
j++;
}
editCount++;
} else {
i++;
j++;
}
}
if (i < len1 || j < len2) editCount++;
return editCount == 1;
}
}