[LeetCode] 2068. Check Whether Two Strings are Almost Equivalent

Chobby·6일 전
1

LeetCode

목록 보기
661/710

😎풀이

  1. word1, word2의 단어 빈도 확인
  2. word1의 단어 빈도를 순회하며, word2의 단어 빈도와 차이가 3 이상인 경우 false를 반환
  3. word2의 단어 빈도를 순회하며, word1의 단어 빈도와 차이가 3 이상인 경우 false를 반환
  4. 모든 단어의 차이가 3이상 차이나지 않는 경우 true를 반환한다.
function checkAlmostEquivalent(word1: string, word2: string): boolean {
    const frequent1 = new Map()
    const frequent2 = new Map()
    for(let i = 0; i < word1.length; i++) {
        const char1 = word1[i]
        const char2 = word2[i]
        frequent1.set(char1, (frequent1.get(char1) ?? 0) + 1)
        frequent2.set(char2, (frequent2.get(char2) ?? 0) + 1)
    }
    for(const [key, freq1] of frequent1) {
        const freq2 = frequent2.get(key) ?? 0
        const gap = Math.abs(freq1 - freq2)
        if(gap > 3) return false
    }
    for(const [key, freq2] of frequent2) {
        const freq1 = frequent1.get(key) ?? 0
        const gap = Math.abs(freq1 - freq2)
        if(gap > 3) return false
    }
    return true
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글