记录一道hashtable的题,用两次互相的字符(s[i])到字符(t[i])映射记录,然后按照映射还原比较就可以判断是否相同,开始以为只有字母,后来发现是ascii码表长度的alphabet才可以~
public static boolean isIsomorphic(String s, String t) {
char[] alph1 = new char[128];
char[] alph2 = new char[128];
for(int i=0;i<s.length();i++){
alph1[s.charAt(i)] = t.charAt(i);
alph2[t.charAt(i)] = s.charAt(i);
}
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
for(int i=0;i<s.length();i++){
sb1.append(alph1[s.charAt(i)]);
sb2.append(alph2[t.charAt(i)]);
}
System.out.println(sb1);
System.out.println(sb2);
if(sb1.toString().equals(t) && sb2.toString().equals(s)){
return true;
}else{
return false;
}
}
public static void main(String[] args) {
String s = "bb";
String t = "aa";
System.out.println(isIsomorphic(s,t));
}