您的位置:首页 > 其它

Isomorphic Strings

2016-06-08 05:26 162 查看
这道题和word pattern几乎一样,但自己还是在做出了一次大的错误后,才意识到将set改成map来做,我们能不能从中理解到奥义了!!!

public boolean isIsomorphic(String s, String t) {
if (s == null) {
return true;
}
Map<Character, Integer> setS = new HashMap<>();
Map<Character, Integer> setT = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
if (setS.containsKey(s.charAt(i))) {
if (setT.containsKey(t.charAt(i))) {
if (setS.get(s.charAt(i)).equals(setT.get(t.charAt(i)))) {
continue;
} else {
return false;
}
} else {
return false;
}
} else {
if (setT.containsKey(t.charAt(i))) {
return false;
} else {
setS.put(s.charAt(i), i);
setT.put(t.charAt(i), i);
}
}
}
return true;

// Set<Character> setS = new HashSet<>();
// Set<Character> setT = new HashSet<>();
// for (int i = 0; i < s.length(); i++) {
// if (setS.contains(s.charAt(i))) {
// if (setT.contains(t.charAt(i))) {
// continue;
// } else {
// return false;
// }
// } else {
// if (setT.contains(t.charAt(i))) {
// return false;
// } else {
// setS.add(s.charAt(i));
// setT.add(t.charAt(i));
// }
// }
// }
// return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: