题意就是判断二个字符串是不是同构字符串。可以替换字符,但是二个不同的字符,不能替换为同一个。二个相同的字符,必须替换为同一个。
思路:设置二个数组,一个数组下标是替换的字符,值是替换后的字符。另一个正好相反。
当有同一个字符要替换为二个不同的值,或者二个不同字符替换为同一个值,这时就不是同构字符串。
代码如下:
public class Solution {
public static boolean isIsomorphic(String s,String t){
char[] rep=new char[130];
char[] rr=new char[130];
int len=s.length();
char cs,ct;
for(int i=0;i<len;i++){
cs=s.charAt(i);
ct=t.charAt(i);
if(rep[cs-'\0']==0 && rr[ct-'\0']==0){
rep[cs-'\0']=ct;
rr[ct-'\0']=cs;
}else if(rep[cs-'\0']!=ct){
return false;
}
}
return true;
}
}