文章目录
- 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] =ctelse:# 判断s2t映射是否跟ct对应if s2t[cs] != ct:return False # step2: check t2sif ct not in t2s:t2s[ct] = cselse:if t2s[ct] != cs:return False return True