Problem
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.
Algorithm
Using dict records for bi-directional mapping.
Code
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
slen = len(s)
tlen = len(t)
if slen != tlen:
return false
sMap = dict()
tMap = dict()
for i in range(slen):
if s[i] in sMap:
if sMap[s[i]] != t[i]:
return False
else:
sMap[s[i]] = t[i]
if t[i] in tMap:
if tMap[t[i]] != s[i]:
return False
else:
tMap[t[i]] = s[i]
return True