205. 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

Example 2:

Input: s = "foo", t = "bar"
Output: false

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.




 class Solution:


    def isIsomorphic(self, s: str, t: str) -> bool:
        if len(s) != len(t):
            return False

        return self.encode(s) == self.encode(t)

    def encode(self, st):
        d = {}
        return str([d.setdefault(c,len(d)) for c in st])

#         hashmap = {}

#         for i, char in enumerate(s):
#             if char in hashmap:
#                 if hashmap[char] != t[i]:
#                     return False
#             else:
#                 hashmap[char] = t[i]

#         if len(hashmap.keys()) != len(set(t)):
#             return False
#         return True


Random Note


when you have something circular, most of the time you can have one variableand another can be calculated using size, current value and doing %