第一种简单方法:
public class Solution {
public boolean isIsomorphic(String s, String t) {
HashMap<Character, Character> myMap = new HashMap<Character, Character>();
for(int i=0; i<s.length(); i++) {
if(myMap.containsKey(s.charAt(i)) &&
(t.charAt(i) != myMap.get(s.charAt(i)))) return false;
else if(!myMap.containsKey(s.charAt(i)) && myMap.containsValue(t.charAt(i))) return false;
else myMap.put(s.charAt(i), t.charAt(i));
}
return true;
}
}
第二种,女朋友的方法:
import java.lang.String;
public class Solution {
public boolean isIsomorphic(String s, String t) {
int l = s.length();
int i = 0;
int j = 0;
Map<Character,Character> smapt = new HashMap<Character,Character>();
Map<Character,Character> tmaps = new HashMap<Character,Character>();
for(;j<l;j++){
if(!tmaps.containsKey(t.charAt(j))){
tmaps.put(t.charAt(j), s.charAt(j));
}else if (!tmaps.get(t.charAt(j)).equals(s.charAt(j))){
return false;
}
}
for(;i<l;i++){
if(!smapt.containsKey(s.charAt(i))){
smapt.put(s.charAt(i), t.charAt(i));
}else if (!smapt.get(s.charAt(i)).equals(t.charAt(i))){
return false;
}
}
return true;
}
}
这里主要用到HashMap的几种方法,put(), get(),containsKey(),
containsValue().
比较同一个键值是否对应同一数值