Skip to content
On this page

205. 同构字符串

原题链接:LeetCode 205. 同构字符串

题目描述

给定两个字符串 st ,判断它们是否是同构的。

如果 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
};

技术文档集合