205. Isomorphic Strings
做题历程:
- 2016/Oct/19,应该做了不止2次了,本次耗时5分钟,独立解出
本题难度算是比较简单的。需要注意两种情况:
a -> e并且a -> f这种很好用unordered_map<char, char>避免a -> e并且b -> e这种用Hashmap就无能为力了,要再原来的基础上添加一个unordered_set<char>记录stringt,检测hashmap和hashset的size()是否相等
代码如下:
class Solution {
public:
bool isIsomorphic(string s, string t) {
if (s.length() != t.length()) {
return false;
}
unordered_set<char> char_set;
unordered_map<char, char> char_map;
for (int i = 0; i < s.length(); ++i) {
auto found = char_map.find(s[i]);
char_set.insert(t[i]);
if (found == char_map.end()) {
char_map[s[i]] = t[i];
}
else {
if (char_map[s[i]] != t[i]) {
return false;
}
}
}
return char_map.size() == char_set.size();
}
};