def sameStr(self,s,t): s1={} s2={} for i in range(len(s)): if s[i]not in s1 and t[i] not in s2: s1[s[i]]=i s2[t[i]]=i else: if s1.get(s[i])==None or s2.get(t[i])==None: return False else: if s1.get(s[i])!=s2.get(t[i]): return False return True
思路:该题目中提到s通过替换字符得到t,则这俩个字符是同构的,首先当字符长度不等是肯定不是同构的,其次当s中存在重复字符时,因为第一次替换时,该字符已经指定,而在t中则需要在与s相对应的位置上出现对应的重复字符才能判定为同构字符,这里是通过字典来的键记录该字符,值相当于记录该字符的位置,