判定两个字符是否是同构字符

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相对应的位置上出现对应的重复字符才能判定为同构字符,这里是通过字典来的键记录该字符,值相当于记录该字符的位置,

猜你喜欢

转载自www.cnblogs.com/zxixiu/p/12908779.html