【leetcode面试经典150题】40. 同构字符串(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

给定两个字符串 s 和 t ,判断它们是否是同构的。

如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

【示例一】

输入:s = "egg", t = "add"

输出:true

【示例二】

输入:s = "foo", t = "bar"

输出:false

【示例三】

输入:s = "paper", t = "title"

输出:true

【提示及数据范围】

  • 1 <= s.length <= 5 * 10的4次方
  • t.length == s.length
  • s 和 t 由任意有效的 ASCII 字符组成

【代码】

// 用两个键值对相反的哈希表来存储

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        unordered_map<char, char> s2t;
        unordered_map<char, char> t2s;
        int len = s.length();
        for (int i = 0; i < len; ++i) {
            char x = s[i], y = t[i];
            if ((s2t.count(x) && s2t[x] != y) || (t2s.count(y) && t2s[y] != x)) {
                return false;
            }
            s2t[x] = y;
            t2s[y] = x;
        }
        return true;
    }
};

相关推荐

  1. leetcode面试经典15040. 字符串C++)

    2024-04-11 12:14:02       39 阅读
  2. leetcode面试经典15041. 单词规律(C++)

    2024-04-11 12:14:02       45 阅读
  3. leetcode面试经典15045. 快乐数(C++)

    2024-04-11 12:14:02       45 阅读
  4. leetcode面试经典15044. 两数之和(C++)

    2024-04-11 12:14:02       34 阅读
  5. 力扣经典150第四十字符串

    2024-04-11 12:14:02       32 阅读
  6. 面试经典150(42-44)

    2024-04-11 12:14:02       52 阅读
  7. 面试经典150(47-49)

    2024-04-11 12:14:02       55 阅读
  8. leetcode面试经典15047. 最长连续序列(C++)

    2024-04-11 12:14:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 12:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 12:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 12:14:02       82 阅读
  4. Python语言-面向对象

    2024-04-11 12:14:02       91 阅读

热门阅读

  1. LVS NAT、DR、FULL-NAT 模式介绍

    2024-04-11 12:14:02       34 阅读
  2. 浅入浅出容器化部署

    2024-04-11 12:14:02       37 阅读
  3. 访问网站时IP被阻止?解决方法

    2024-04-11 12:14:02       56 阅读
  4. 解决moviepy保存的视频画质不清晰问题

    2024-04-11 12:14:02       36 阅读
  5. 4.9

    4.9

    2024-04-11 12:14:02      36 阅读
  6. 使用 IEEE (1735) Verilog 标准机制进行 IP 保护

    2024-04-11 12:14:02       41 阅读
  7. ISBN 正则表达式及代码示例

    2024-04-11 12:14:02       39 阅读
  8. Leetcode-1702-修改后的最大二进制字符串-c++

    2024-04-11 12:14:02       42 阅读
  9. vue监听键盘回车事件的三种方法

    2024-04-11 12:14:02       31 阅读