Odd String Difference

EasyArrayHash TableString

Solution

export function oddString(words: string[]): string {
  function getDifference(word: string): string {
    let difference = '';
    for (let i = 0; i < word.length - 1; i++) {
      difference += `${word.charCodeAt(i + 1) - word.charCodeAt(i)}_`;
    }
    return difference;
  }
 
  const differences = new Map<string, string[]>();
  for (const word of words) {
    const difference = getDifference(word);
    if (!differences.has(difference)) {
      differences.set(difference, [word]);
    } else {
      differences.get(difference)!.push(word);
    }
  }
 
  for (const wordsByDifference of differences.values()) {
    if (wordsByDifference.length === 1) {
      return wordsByDifference[0];
    }
  }
  return '';
}