解题思路:
仔细阅读题意,应注意到一个 hash表是不够的,需要新建两个hash表,分别存储 s->t 和 t->s 的映射。
class Solution {
public:
bool isIsomorphic(string s, string t) {
if(s.length() != t.length()) return false;
unordered_map<char, char> smp;
unordered_map<char, char> tmp;
for(int i = 0; i < s.size(); i++){
if(smp.find(s[i]) != smp.end()){
if(smp[s[i]] != t[i]) return false;
}
if(tmp.find(t[i]) != tmp.end()){
if(tmp[t[i]] != s[i]) return false;
}
else{
tmp[t[i]] = s[i];
smp[s[i]] = t[i];
}
}
return true;
}
};