52.同构字符串


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

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

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

/*
分析:
只要保证 s 中的字符和 t 中的字符一一对应,那么字符串 s 和字符串 t 就是同构字符串。

例一:
s = "egg", t = "add"
其中 e -> a g -> d, 所以字符串 s 和字符串 t 是同构字符串。

例二:
s = "foo", t = "bar"
其中 f -> b o -> a o -> r, 字符 o 同时对应 a 和 r,所以字符串 s 和字符串 t 不是同构字符串。

利用哈希表存储 s 中每个字符对应的 t 中的字符,如果发现重复则不是同构字符串,同样利用哈希表存储 t 中的每个字符对应的 s 中的字符,如果发现重复则不是同构字符串。
*/
class Solution {
    public boolean isIsomorphic(String s, String t) {
        HashMap sMap = new HashMap<>();
        HashMap tMap = new HashMap<>();
        for (int i=0; i