class Solution
{
public:
bool isIsomorphic(string s, string t)
{
unordered_map<char, char> st;
unordered_map<char, char> ts;
int len = s.size();
for (int i = 0; i < len; ++i)
{
char x = s[i], y = t[i];
if ((st.count(x) && st[x] != y) || (ts.count(y) && ts[y] != x))
{
return false;
}
st[x] = y;
ts[y] = x;
}
return true;
}
};
时间复杂度:O(n),其中 n 为字符串的长度。我们只需同时遍历一遍字符串 s 和 t 即可
空间复杂度:O(∣Σ∣),其中 Σ 是字符串的字符集。哈希表存储字符的空间取决于字符串的字符集大小,最坏情况下每个字符均不相同,需要 O(∣Σ∣) 的空间