205. 同构字符串

https://leetcode-cn.com/problems/isomorphic-strings/

解法一:双哈希映射

思路:利用ascii码,每个字符对应0~255的值,例如’A’的ascii值为65,’a’为97.将字符串s和t中的所有字符分别映射到长度为256的表vs和vt中,则所有256种可能的字符在映射表中都有且仅有唯一的位置(即数组下标).

此外,若s和t是同构字符串,则最多只存在256种对应关系,用一个唯一的整数表示这种唯一的对应关系,充当这个匹配的”桥梁”(自行体会).

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        dict_s = [-1] * 256
        dict_t = [-1] * 256
        for i in range(len(s)):
            if dict_s[ord(s[i])] == -1:
                dict_s[ord(s[i])] = i
            if dict_t[ord(t[i])] == -1:
                dict_t[ord(t[i])] = i
            if dict_s[ord(s[i])] != dict_t[ord(t[i])]:
                return False
        return True

最后更新于