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
sandtcan be made identical by: • Mapping ‘e’ to ‘a’. • Mapping ‘g’ to ‘d’.
Example 2:
- Input:
s = "f11", t = "b23" - Output:
false - Explanation: The strings
sandtcan 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^4t.length == s.lengthsandtconsist 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))