MCPcopy Index your code
hub / github.com/betomoedano/JavaScript-Coding-Interview-Questions / oneAway

Function oneAway

strings/one-away.js:48–76  ·  view source on GitHub ↗
(array1, array2)

Source from the content-addressed store, hash-verified

46// Time O(n + m)
47// Space O(max(n + m))
48function oneAway(array1, array2) {
49 const largerString = array1.length > array2.length ? array1 : array2;
50 const smallString = array1.length <= array2.length ? array1 : array2;
51 const frequencies = {};
52 let edits = 0;
53
54 if (largerString.length - smallString.length > 1) return false;
55
56 for (let i = 0; i < largerString.length; i++) {
57 if (frequencies.hasOwnProperty(largerString[i])) {
58 frequencies[largerString[i]]++;
59 } else {
60 frequencies[largerString[i]] = 1;
61 }
62 }
63
64 for (let j = 0; j < smallString.length; j++) {
65 if (frequencies.hasOwnProperty(smallString[j])) {
66 if (frequencies[smallString[j]] === 0) return false;
67 frequencies[smallString[j]] -= 1;
68 }
69 }
70
71 Object.values(frequencies).forEach((value) => {
72 edits += value;
73 });
74
75 return edits <= 1;
76}
77
78console.log(oneAway("pale", "ple"));
79console.log(oneAway("pale", "pales"));

Callers 1

one-away.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected