목표: 두 문자열의 각 문자가 동일한 빈도로 등장하는지 확인하되, 대소문자와 공백을 무시합니다.
방법 1: replace
메서드와 정규 표현식을 사용하여 공백을 제거하고, toLowerCase
메서드를 사용하여 문자열을 소문자로 변환한 후 빈도를 비교합니다.
const normalize = str => str.replace(/\s+/g, '').toLowerCase();
방법 2: toLowerCase
와 replaceAll
메서드를 사용하여 문자열을 소문자로 변환하고 모든 공백을 제거한 후 빈도를 비교합니다.
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, '');