文章目录
- 1、题目描述
- 2、 代码
1、题目描述
同构字符串。给定两个字符串 s 和 t ,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
愣是没读懂,大致就是能够按照同一套映射法则,既可以从s到t,也可以从t到s。
2、 代码
同时遍历两个字符串中每个字符,判断取出这两个字符是不是能够互相映射到对方。直接看代码把…
class Solution:
def isIsomorphic(self, s: str, t: str) -> bool:
# 同构必须长度相等
if len(s) != len(t):
return False
# 存储两个互逆的映射
s2t, t2s = {}, {}
for cs, ct in zip(s, t):
# step1: check s2t
if cs not in s2t:
s2t[cs] =ct
else:
# 判断s2t映射是否跟ct对应
if s2t[cs] != ct:
return False
# step2: check t2s
if ct not in t2s:
t2s[ct] = cs
else:
if t2s[ct] != cs:
return False
return True