leetcode 205. 同构字符串 python
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s ="egg", t ="add"输出:true
示例 2:
输入:s ="foo", t ="bar"输出:false
示例 3:
输入:s ="paper", t ="title"输出:true
class Solution:def isIsomorphic(self, s: str, t: str) -> bool:dict1 = {}length = len(s)dict1[s[0]] = t[0]i = 1while(i<length):if(s[i] not in dict1)://键不在字典中要添加if(t[i] in dict1.values())://若该值已在字典则重复添加,非同构return Falsedict1[s[i]] = t[i]i += 1elif(s[i] in dict1 and dict1[s[i]]!=t[i])://在字典中且该键对应值不同,非同构return Falseelif(s[i] in dict1 and dict1[s[i]]==t[i])://同构i自加1i += 1return True