ABOUT ME

Today
Yesterday
Total
  • [릿코드/javascript] Isomorphic Strings
    카테고리 없음 2023. 3. 23. 11:12
    /**
     * @param {string} s
     * @param {string} t
     * @return {boolean}
     */
    var isIsomorphic = function(s, t) {
        //객체에 index 저장하고, 양쪽 index 가 같으면..??
        const sObj = {}
        const tObj ={}
        const sArr = [];
        const tArr = [];
        for(let i = 0;i<s.length;i++){
            if(sObj[s[i]]) sObj[s[i]].push(i)
            else sObj[s[i]] = [i]
        }
        for(let i = 0;i<t.length;i++){
            if(tObj[t[i]]) tObj[t[i]].push(i)
            else tObj[t[i]] = [i]
        }
        for(let key in sObj){
            sArr.push(sObj[key])
        }
        for(let key in tObj){
            tArr.push(tObj[key])
        }
        sStr = sArr.map((el)=>el.join(''))
        tStr = tArr.map((el)=>el.join(''))
        let answer = sStr.filter((x)=>!tStr.includes(x))
        return !answer.length;
    
    };

    처음 푼 풀이

    var isIsomorphic = function(s, t) {
        // Base case: for different length of two strings...
        if(s.length != t.length)
            return false;
        // Create two maps for s & t strings...
        const map1 = {};
        const map2 = {};
        // Traverse all elements through the loop...
        for(let idx = 0; idx < s.length; idx++){
            // Compare the maps, if not equal, return false...
            if(map1[s[idx]] != map2[t[idx]])
                return false;
            // Insert each character if string s and t into seperate map...
            map1[s[idx]] = idx
            map2[t[idx]] = idx 
        }
        return true;    // Otherwise return true...
    };

    다른사람의 풀이를 참고하여 다시 푼 풀이

Designed by Tistory.