5/23 TIL

이세영·2024년 5월 23일
0
post-thumbnail
post-custom-banner
  • 목표: 두 문자열의 각 문자가 동일한 빈도로 등장하는지 확인하되, 대소문자와 공백을 무시합니다.

  • 방법 1: replace 메서드와 정규 표현식을 사용하여 공백을 제거하고, toLowerCase 메서드를 사용하여 문자열을 소문자로 변환한 후 빈도를 비교합니다.

    const normalize = str => str.replace(/\s+/g, '').toLowerCase();
  • 방법 2: toLowerCasereplaceAll 메서드를 사용하여 문자열을 소문자로 변환하고 모든 공백을 제거한 후 빈도를 비교합니다.

    a = a.toLowerCase().replaceAll(' ', '');
    b = b.toLowerCase().replaceAll(' ', '');
  • 전체 코드 예제:

    function areFrequenciesEqual(a, b) {
        a = a.toLowerCase().replaceAll(' ', '');
        b = b.toLowerCase().replaceAll(' ', '');
    
        if (a.length !== b.length) {
            return false;
        }
    
        const freqA = {};
        const freqB = {};
    
        for (const char of a) {
            freqA[char] = (freqA[char] || 0) + 1;
        }
    
        for (const char of b) {
            freqB[char] = (freqB[char] || 0) + 1;
        }
    
        for (const char in freqA) {
            if (freqA[char] !== freqB[char]) {
                return false;
            }
        }
    
        return true;
    }

-다른 방법으로 대소문자 무시하는 방법은 요걸 사용한다

a = a.toLowerCase().replace(/\s+/g, '');
b = b.toLowerCase().replace(/\s+/g, '');
profile
블로그 관리 하루에 한번씩 도전!
post-custom-banner

0개의 댓글