DEV Community

loading...

So I came across this question.....

abhsiksah
just another coder in the race!!
・1 min read

Given two strings, return true if they are one edit away from each other, else return false.

and this is my solution but I cannot get my answer:

//code:

const isobj = (str) => {
let obj = {};

for (const char of str) {
    !obj[char] ? (obj[char] = 1) : obj[char]++;
}

return obj;
Enter fullscreen mode Exit fullscreen mode

};

const isedit = (str1, str2) => {
let obj1 = isobj(str1);
let obj2 = isobj(str2);

// console.log(obj1,obj2)
let counter = 0;


for (let key in obj2) {
    if (obj1[key] == obj2[key]) 
    {
        continue;
    }
    else {
        if (obj1[key] - obj2[key] == 1) 
        {
            counter++;
        } else
        {
            return false;
        }
    }
}
  console.log(counter);

if (counter == 1) {
    return true;
} else {
    return false;
}
Enter fullscreen mode Exit fullscreen mode

}

console.log(isedit("pal", "pale"));

Discussion (0)