😎풀이

  1. st의 스펠링 빈도 체크를 위한 배열을 각각 생성한다.
  2. 문자열을 순회하며 각 스펠링의 빈도를 확인한다(이 때 97은 a에 대한 char code임)
  3. count수를 비교하며 한 번이라도 다르다면 anagram이 아니므로 false 반환
  4. 모든 스펠링의 빈도가 같다면 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글