Skip to content

205. Isomorphic Strings

Hash Table String

Problem - Isomorphic Strings

Easy

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 = "foo", t = "bar"

Output: false

Explanation:

The strings s and t can not be made identical as 'o' needs to be mapped to both 'a' and 'r'.

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.

Solutions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        set1 = {}
        set2 = {}

        for a, b in zip(s, t):
            if (a in set1 and set1[a] != b) or (b in set2 and set2[b] != a):
                return False
            set1[a] = b
            set2[b] = a

        return True

Submission Stats:

  • Runtime: 4 ms (75.47%)
  • Memory: 17.9 MB (54.37%)