-
[릿코드/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... };
다른사람의 풀이를 참고하여 다시 푼 풀이