Appearance
205. 同构字符串
原题链接:LeetCode 205. 同构字符串
题目描述
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
"egg"
示例 2:
"foo"
示例 3:
"paper"
提示:
1 <= s.length <= 5 * 104
- `t.length == s.length`
- `s` 和 `t` 由任意有效的 ASCII 字符组成
难度: Easy
题解代码
javascript
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isIsomorphic = function(s, t) {
const s2t = {}, t2s = {}
for (let i = 0; i < s.length; i++) {
const X = s[i], Y = t[i]
if ((s2t[X] && s2t[X] !== Y) || (t2s[Y] && t2s[Y] !== X)) {
return false
}
s2t[X] = Y
t2s[Y] = X
}
return true
};