首页 > 代码库 > LeetCode-Isomorphic Strings

LeetCode-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.

 Analysis:
Be careful that the chars should be 1-on-1 mapping.
Solution:
public class Solution {    public boolean isIsomorphic(String s, String t) {        if (s.length()!=t.length()) return false;        if (s.length()==0) return true;                Character[] charMap = new Character[128];        boolean[] mapped = new boolean[128];        char[] sArr = s.toCharArray();        char[] tArr = t.toCharArray();        for (int i=0;i<sArr.length;i++){            if (charMap[sArr[i]]==null){                if (mapped[tArr[i]]) return false;                charMap[sArr[i]] = tArr[i];                mapped[tArr[i]] = true;            } else {                if (charMap[sArr[i]]!=tArr[i]) return false;            }        }        return true;                }}

 

LeetCode-Isomorphic Strings