方法1:双哈希表
时间复杂度:$O(n)$
空间复杂度:$O(Σ)$
解题思路
构建两张哈希表,保证双向一一映射即可。一旦发现有一对多关系,说明错误。
https://leetcode.cn/problems/isomorphic-strings/solution/by-jyd-i4wt/
Java 代码
class Solution {
public boolean isIsomorphic(String s, String t) {
Map<Character, Character> s2t = new HashMap<>(), t2s = new HashMap<>();
for (int i = 0; i < s.length(); i ++) {
char a = s.charAt(i), b = t.charAt(i);
if (s2t.containsKey(a) && s2t.get(a) != b || t2s.containsKey(b) && t2s.get(b) != a) {
return false;
}
s2t.put(a, b);
t2s.put(b, a);
}
return true;
}
}