Given two strings s and t, determine if they are isomorphic.java
Two strings are isomorphic if the characters in s can be replaced to get t.spa
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.code
For example,
Given "egg"
, "add"
, return true.get
Given "foo"
, "bar"
, return false.string
Given "paper"
, "title"
, return true.hash
Note:
You may assume both s and t have the same length.it
public class Solution { public boolean isIsomorphic(String s, String t) { if((s == null && t != null) || (s != null && t == null) || s.length() != t.length()){ return false; } HashMap<Character, Character> map1 = new HashMap<Character, Character>(); HashMap<Character, Character> map2 = new HashMap<Character, Character>(); for(int i=0; i<s.length(); i++){ if(map1.containsKey(s.charAt(i))){ if(map1.get(s.charAt(i)) == t.charAt(i)){ continue; }else{ return false; } }else if(map2.containsKey(t.charAt(i))){ if(map2.get(t.charAt(i)) == s.charAt(i)){ continue; }else{ return false; } }else{ map1.put(s.charAt(i), t.charAt(i)); map2.put(t.charAt(i), s.charAt(i)); } } return true; } }考慮到ab, aa的狀況,要用2個hashmap