Skip to content
prdlk
Esc
↑↓navigate↵open⌘Jpreview
On this page

205. Isomorphic Strings

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

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 * 10^4
  • t.length == s.length
  • s and t consist of any valid ascii character.

Solution

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        N = len(t)
        seen = {}

        for i in range(N):
            c1, c2 = s[i], t[i]
            if c1 in seen and seen[c1] != c2:
                return False
            elif c1 in seen and seen[c1] == c2:
                continue
            else:
                seen[c1] = c2

        return len(set(s)) == len(set(t))

Last updated on October 1, 2026

Was this page helpful?