
😎풀이
s
와 t
의 스펠링 빈도 체크를 위한 배열을 각각 생성한다.
- 문자열을 순회하며 각 스펠링의 빈도를 확인한다(이 때 97은
a
에 대한 char code임)
- count수를 비교하며 한 번이라도 다르다면 anagram이 아니므로
false
반환
- 모든 스펠링의 빈도가 같다면
true
를 반환한다.
function isAnagram(s: string, t: string): boolean {
if(s.length !== t.length) return false
const sCount = Array(26).fill(0)
const tCount = Array(26).fill(0)
for(let i = 0; i < s.length; i++) {
const curS = s[i]
const curT = t[i]
sCount[curS.charCodeAt(0) - 97]++
tCount[curT.charCodeAt(0) - 97]++
}
for(let i = 0; i < 26; i++) {
const curS = sCount[i]
const curT = tCount[i]
if(curS !== curT) return false
}
return true
};