Isomorphic Strings

来源:互联网 发布:pc手机网站源码 编辑:程序博客网 时间:2024/04/30 06:40

这道题和word pattern几乎一样,但自己还是在做出了一次大的错误后,才意识到将set改成map来做,我们能不能从中理解到奥义了!!!

    public boolean isIsomorphic(String s, String t) {        if (s == null) {            return true;        }        Map<Character, Integer> setS = new HashMap<>();        Map<Character, Integer> setT = new HashMap<>();        for (int i = 0; i < s.length(); i++) {            if (setS.containsKey(s.charAt(i))) {                if (setT.containsKey(t.charAt(i))) {                    if (setS.get(s.charAt(i)).equals(setT.get(t.charAt(i)))) {                        continue;                    } else {                        return false;                    }                } else {                    return false;                }            } else {                if (setT.containsKey(t.charAt(i))) {                    return false;                } else {                    setS.put(s.charAt(i), i);                    setT.put(t.charAt(i), i);                }            }        }        return true;        //        Set<Character> setS = new HashSet<>();//        Set<Character> setT = new HashSet<>();//        for (int i = 0; i < s.length(); i++) {//            if (setS.contains(s.charAt(i))) {//                if (setT.contains(t.charAt(i))) {//                    continue;//                } else {//                    return false;//                }//            } else {//                if (setT.contains(t.charAt(i))) {//                    return false;//                } else {//                    setS.add(s.charAt(i));//                    setT.add(t.charAt(i));//                }//            }//        }//        return true;    }


0 0