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

    如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

    每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
    示例 1:
    输入:s = “egg”, t = “add”
    输出:true
    示例 2:
    输入:s = “foo”, t = “bar”
    输出:false
    示例 3:
    输入:s = “paper”, t = “title”
    输出:true

    1. /**
    2. * @param {string} s
    3. * @param {string} t
    4. * @return {boolean}
    5. */
    6. var isIsomorphic = function (s, t) {
    7. let S = new Map, T = new Map, i = -1;
    8. while (i < s.length) {
    9. const a = s[i], b = t[i];
    10. // 相同比较i是否相同,不同返回false
    11. if (S.get(a) !== T.get(b)) return false;
    12. S.set(a, i);
    13. T.set(b, i);
    14. i++;
    15. }
    16. return true;
    17. }

    image.png