[leetcode]205. Isomorphic Strings同构字符串

Posted stAr_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode]205. Isomorphic Strings同构字符串相关的知识,希望对你有一定的参考价值。

哈希表可以用ASCII码数组来实现,可以更快

public boolean isIsomorphic(String s, String t) {
        /*
        思路是记录下每个字符出现的位置,当有重复时,检查另外一个map是不是也是对应位置重复
         */
        if (s.length()!=t.length())
        {
            return false;
        }

        Map<Character,Integer> map1 = new HashMap<>();
        Map<Character,Integer> map2 = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char c1 = s.charAt(i);
            char c2 = t.charAt(i);
            //有重复的情况
            if (map1.containsKey(c1))
            {
                //注意这里有个小插曲,就是map得到的包装类,所有包装类比较值 相等要用equals()方法,不能用==,这个字符串是一样的
                if ((!map2.containsKey(c2))||(!Objects.equals(map2.get(c2), map1.get(c1))))
                {
                    return false;
                }
                else
                {
                    map1.put(c1,i);
                    map2.put(c2,i);
                }
            }
            //没有重复的情况
            else
            {
                if (map2.containsKey(c2))
                {
                    return false;
                }
                map1.put(c1,i);
                map2.put(c2,i);
            }
        }
        return true;
    }

 

以上是关于[leetcode]205. Isomorphic Strings同构字符串的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 205 Isomorphic Strings

205. Isomorphic Strings(LeetCode)

LeetCode 205. Isomorphic Strings

LeetCode 205 Isomorphic Strings

LeetCode 205 Isomorphic Strings

LeetCode205. Isomorphic Strings