给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t,那么这两个字符串是同构的。
没法出现的字符都应映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
- 时间复杂度 O(N),空间复杂度O(1)
- Runtime: 84 ms, faster than 83.96%
- Memory Usage: 40.4 MB, less than 82.42%
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isIsomorphic = function(s, t) {
let mapS = {};
let mapT = {};
for (let i = 0; i < s.length; i++) {
let c1 = s[i];
let c2 = t[i];
if (mapS[c1] === undefined && mapT[c2] === undefined) {
mapS[c1] = c2;
mapT[c2] = c1;
} else if ( !(mapS[c1] === c2 && mapT[c2] === c1)) {
return false
}
}
return true;
};
网友评论