通过万岁!!!
- 题目:给你两个字符串,然后判断是不是同样的结构,例如,都是ABB类型等。
- 思路:这个题是之前 890.查找和替换模式的简化版本。因为这里需要建立的是两个字符串的对应关系,也就是说,保证里面的字符串是一一对应的。所以直接用两个数组,因为字符都是ASCII码,所以数组长度我们直接初始化的为127。数组sArr的第j(j是s的第i个字符对应的ascii码)个位置存放t字符串中第i个字符的ascii码,其公式就是sArr[s[i]]=t[i]。
- 技巧:可以用hashmap进行,这里我直接用的数组建立的对应关系。
java代码
public boolean isIsomorphic(String s, String t) {
// 890的简化版
int sl = s.length();
int tl = t.length();
if (sl != tl) {
return false;
}
int[] sArr = new int[127];
int[] tArr = new int[127];
// 建立对应关系
for (int i = 0; i < sl; i++) {
sArr[s.charAt(i)] = t.charAt(i);
tArr[t.charAt(i)] = s.charAt(i);
}
// 检验对应关系
for (int i = 0; i < sl; i++) {
if (sArr[s.charAt(i)] == t.charAt(i) && s.charAt(i) == tArr[t.charAt(i)]) {
continue;
} else {
return false;
}
}
return true;
}
- 总结:题目不是很难,其实也可以通过hashmap进行。



