
const stringA = "string";
const stringB = "stnrig";
// true
const stringA = "string";
const stringB = "strrig";
// false
function isAnagram(strA, strB) {
if(strA.length !== strB.length){
return false;
}
return strA.split("").sort().join() === strB.split("").sort().join();
}
처음에 개수로 빠르게 판별후 split으로 배열에 한 단어씩 나누고 sort로 정렬후 join으로 합쳐 판별하는 방식입니다.
function isAnagram(strA, strB) {
if(strA.length !== strB.length){
return false;
}
const hashMap = {};
for(const char of strA) {
hashMap[char] = hashMap[char] ? hashMap[char] + 1 : 1;
}
for (const char of strB) {
if(!hashMap[char]) {
return false;
}
hashMap[char]--;
}
return true;
}
처음에 개수로 빠르게 판별후 A를 hash값으로 만들고 B를 반복 시켜 있는지 체크 하고 있으면 값을 빼주어서 판별하는 방법 입니다.