zerovoids.dev
LEETCODEEasy

Isomorphic Strings

풀이일 2025 · 03 · 28기록 4 ms · 58.0 MB원문 leetcode ↗
Hash TableString
문제

Given two strings s and t, determine if they are isomorphic.

Two strings s and t are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character, but a character may map to itself.

 

Example 1:

Input: s = "egg", t = "add"

Output: true

Explanation:

The strings s and t can be made identical by:

  • Mapping 'e' to 'a'.
  • Mapping 'g' to 'd'.

Example 2:

Input: s = "f11", t = "b23"

Output: false

Explanation:

The strings s and t can not be made identical as '1' needs to be mapped to both '2' and '3'.

Example 3:

Input: s = "paper", t = "title"

Output: true

 

Constraints:

  • 1 <= s.length <= 5 * 104
  • t.length == s.length
  • s and t consist of any valid ascii character.
풀이 TypeScript
function morphString(input: string): string {
  const map: Record<string, number> = {};
  let lastIndex = 0;
  return input.split('')
    .map((char) => {
      if (!(char in map)) {
        map[char] = ++lastIndex;
      }
      return map[char];
    }).join('');
}

function isIsomorphic(s: string, t: string): boolean {
  return morphString(s) === morphString(t);
}
복사됨