public class Solution {
public boolean isIsomorphic(String s, String t) {
HashMap<Character, Character> map1 = new HashMap<Character, Character>();
HashMap<Character, Character> map2 = new HashMap<Character, Character>();
if(s == null || t == null || s.length() != t.length()) return false;
int len = s.length();
for(int i = 0; i < len; i++) {
char temp1 = s.charAt(i);
char temp2 = t.charAt(i);
if(!map1.containsKey(temp1)) {
map1.put(temp1, temp2);
} else if (map1.get(temp1) != temp2){
return false;
}
if(!map2.containsKey(temp2)) {
map2.put(temp2, temp1);
} else if (map2.get(temp2) != temp1){
return false;
}
}
return true;
}
}
public class Solution {
public boolean isIsomorphic(String s, String t) {
if(s == null || t == null || s.length() != t.length()) return false;
Set<Character> set1 = new HashSet<Character>();
Set<Character> set2 = new HashSet<Character>();
Map<Character,Character> map = new HashMap<Character,Character>();
int len = s.length();
for(int i = 0; i < len; i++) {
char temp1 = s.charAt(i);
char temp2 = t.charAt(i);
set1.add(temp1);
set2.add(temp2);
map.put(temp1, temp2);
}
return set1.size() == set2.size() && set1.size() == map.size();
}
}
/*
"add"
"egg"
"cd"
"aa"
*/
public class Solution {
public boolean isIsomorphic(String s, String t) {
return helper(s,t) && helper(t,s);
}
private boolean helper (String s, String t){
if (s.length()!= t.length()){
return false;
}
char [] hashmap = new char [256];
for (int i = 0; i<s.length(); i++){
char cS = s.charAt(i);
char cT = t.charAt(i);
if (hashmap[cS]==0){
hashmap[cS] = cT;
} else if (hashmap[cS] != cT){
return false;
}
}
return true;
}
}
public class Solution {
public boolean isIsomorphic(String s, String t) {
char[] S = s.toCharArray();
char[] T = t.toCharArray();
if(S.length != T.length) return false;
return isIsomorphic(S, T) ;
}
boolean isIsomorphic(char[] S, char[] T) {
char[] MAP = new char[256];
Set<Character> usedMapping = new HashSet<Character>();
for(int i = 0; i < S.length; i++) {
if(MAP[(int)S[i]] == 0) {
// not mapped
if (usedMapping.contains(T[i]))
return false;
MAP[(int)S[i]] = T[i];
usedMapping.add(T[i]);
} else {
if ( MAP[(int)S[i]] != T[i]) {
return false;
}
}
}
return true;
}
}