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