https://leetcode.com/problems/isomorphic-strings/
s と t をマッピングして考える。
この際、同じ文字なのに違う文字がマッピングされる場合
isomorphic にならない。
ex. foo bar
| f → b | | o → a | | o → r |
| b → f | | a → o | | r → o |
o が a と r にマッピングされているので、 isomorphic にならず、false になる。
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
mapST, mapTS = {}, {}
for c1, c2 in zip(s, t):
if((c1 in mapST and mapST[c1] != c2) or
(c2 in mapTS and mapTS[c2] != c1)):
return False
mapST[c1] = c2
mapTS[c2] = c1
return True