LeetCode探索之旅(59)-205同构字符串

今天继续刷LeetCode,第205题,求两个字符串是否是同构的。

分析:
判断两个字符串是否同构,需要找到两个字符串中字符之间的对应关系,这时需要用到hashmap,通过建立两个字符串之间的映射关系,那么就可以判断是否是同构的了。建立两个hashmap,遍历其中一个字符串的每一位,如果不在映射关系中,就添加关系,如果在映射关系中,就看映射的字符是否是另一个字符串中的字符,是的话就满足同构,继续遍历,否则不是同构就直接输出false。

方法二:可以通过数字代替字符,如果第一次出现,就为0,一次累加,然后将整个字符串转换为数字,然后比较两个数字是否相等,判断是否同构。

问题:
1、map的定义:unordered_map
2、map的查找;

附上C++代码:

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        
        unordered_map tmps;
        unordered_map tmpt;
        for(int i=0;i

附上python代码:
{}定义字典

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        ms,mt={},{}
        for i in range(len(s)):
            if ms.get(s[i])!=mt.get(t[i]):
                return False
            ms[s[i]]=i
            mt[t[i]]=i
        return True

你可能感兴趣的:(代码训练)