Check if One String Swap Can Make Strings Equal

EasyHash TableStringCounting

Solution

export function areAlmostEqual(s1: string, s2: string): boolean {
  if (s1 === s2) {
    return true;
  }
  const diff = [];
  for (let i = 0; i < s1.length; i++) {
    if (s1[i] !== s2[i]) {
      diff.push(i);
    }
    if (2 < diff.length) {
      return false;
    }
  }
  if (diff.length !== 2) {
    return false;
  }
  const [first, second] = diff;
  return s1[first] == s2[second] && s1[second] == s2[first];
}