LeetCode 面试经典150题 205.同构字符串

题目

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

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

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

思路

代码

class Solution {
    public boolean isIsomorphic(String s, String t) {
        Map<Character, Character> s2t = new HashMap<>(), t2s = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char a = s.charAt(i), b = t.charAt(i);
            // 对于已有映射 a -> s2t[a],若和当前字符映射 a -> b 不匹配,
            // 说明有一对多的映射关系,则返回 false;
            // 对于映射 b -> a 也同理
            if (s2t.containsKey(a) && s2t.get(a) != b || 
                t2s.containsKey(b) && t2s.get(b) != a)
                return false;
            s2t.put(a, b);
            t2s.put(b, a);
        }
        return true;
    }
}

性能

相关推荐

  1. leetcode面试经典150】40. 字符串(C++)

    2024-03-27 11:54:02       40 阅读
  2. LeetCode 205. 字符串

    2024-03-27 11:54:02       24 阅读
  3. 力扣经典150第四十字符串

    2024-03-27 11:54:02       33 阅读
  4. 力扣第205字符串

    2024-03-27 11:54:02       30 阅读
  5. Leetcode面试经典150

    2024-03-27 11:54:02       40 阅读
  6. LeetCode每日一 字符串(哈希表)

    2024-03-27 11:54:02       52 阅读

最近更新

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

    2024-03-27 11:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 11:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 11:54:02       87 阅读
  4. Python语言-面向对象

    2024-03-27 11:54:02       96 阅读

热门阅读

  1. C# 异步和线程的区别

    2024-03-27 11:54:02       38 阅读
  2. SpringBoot+Vue项目跨域问题

    2024-03-27 11:54:02       37 阅读
  3. 51单片机超声波测距代码

    2024-03-27 11:54:02       40 阅读
  4. C++之inline

    2024-03-27 11:54:02       44 阅读
  5. Mathworks Matlab R2024a (24.1.0) Crack

    2024-03-27 11:54:02       39 阅读
  6. 浅析深度机器学习的原理

    2024-03-27 11:54:02       32 阅读