zoukankan      html  css  js  c++  java
  • [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;
        }
  • 相关阅读:
    2013dgtcs 成绩排序
    JZOJ 1286. 太空电梯
    java单例模式Singleton
    设计模式的类型
    java工厂模式Factory
    Mysql SQL优化
    maven deploy命令打包到私服
    debian/linux 配置maven
    Java RC4加密解密工具
    JedisUtils
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8312715.html
Copyright © 2011-2022 走看看