205. Isomorphic Strings


Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

For example, Given "egg", "add", return true.

Given "foo", "bar", return false.

Given "paper", "title", return true.

Note: You may assume both s and t have the same length.



但是在不包含的时候还得判断该 值是否已经被其他的绑定,如果绑定了,那么就说明重复了。



public class Solution {
    public boolean isIsomorphic(String s, String t) {
        Hashtable<Character, Character> reflectTable = new Hashtable<>();
        for (int i = 0; i < s.length(); i++) {
            char key = s.charAt(i);
            Object value = reflectTable.get(key);
            if (value == null) {
                char tValue = t.charAt(i);
                boolean containValue = reflectTable.containsValue(tValue);
                    return false;
                reflectTable.put(key, t.charAt(i));
            } else {
                if ((char) value != t.charAt(i))
                    return false;
        return true;