205. 同构字符串

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

如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。

所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。

示例 1:
输入: s = "egg", t = "add"
输出: true

示例 2:
输入: s = "foo", t = "bar"
输出: false

示例 3:
输入: s = "paper", t = "title"
输出: true

进阶:890. 查找和替换模式

题解

解1:

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isIsomorphic = function(s, t) {
    function ss(pattern) {
        let arr = '', a = 0,temp=''
        for (let i = 0; i < pattern.length ; i++) {
            if(temp.indexOf(pattern[i])==-1){
                arr += a + ''
            }else{
                arr += arr[temp.indexOf(pattern[i])] + ''
            }
            if (pattern[i] != pattern[i + 1]) {
                a++
            }
            temp+=pattern[i]
        }
        return arr
    }
    if (ss(s) == ss(t)) {
        return true
    }
    return false
};

解2:

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isIsomorphic = function(s, t) {
    for(let i=0;i<s.length;i++){
        if(s.indexOf(s[i])!=t.indexOf(t[i])){
            return false
        }
    }
    return true
};