import java.util.HashMap;
import java.util.Map;
public class IsomorphicStrings {
public static void main(String[] args){
System.out.println(isIsomorphic("egg", "add"));
System.out.println(isIsomorphic("foo", "bar"));
System.out.println(isIsomorphic("paper", "title"));
}
public static boolean isIsomorphic(String s, String t) {
Map<Character,Integer> map_1 = new HashMap<Character,Integer>();
Map<Character,Integer> map_2 = new HashMap<Character,Integer>();
if(s.length() != t.length())
return false;
for(int i = 0;i<s.length();i++){
if((!map_1.containsKey(s.charAt(i))) && (!map_2.containsKey(t.charAt(i)))){
map_1.put(s.charAt(i), i);
map_2.put(t.charAt(i), i);
}else
if(map_1.containsKey(s.charAt(i)) && map_2.containsKey(t.charAt(i))){
if(map_1.get(s.charAt(i)) == map_2.get(t.charAt(i)))
return true;
else
return false;
}
else
return false;
}
return false;
}
}
输出结果如下:
true
false
true