Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 빈도별로 문자열 문자 정렬

<시간/>

문제

문자열을 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.

우리 함수는 가장 많이 나타나는 문자가 먼저 배치되고 빈도가 감소하는 숫자가 뒤따르는 원래 문자열을 기반으로 새 문자열을 준비해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const str ='무료';

그러면 출력은 다음과 같아야 합니다. -

상수 출력 ='eefr';

출력 설명:

e가 두 번 나타나기 때문에 먼저 r과 f가 뒤에 옵니다.

예시

이에 대한 코드는 -

const str ='free';const frequencySort =(str ='') => { let map ={} for (const letter of str) { map[letter] =(map[letter] || 0) + 1; }; 하자 =""; let sorted =Object.keys(map).sort((a, b) => map[b] - map[a]) for (let letter of sorted) { for (let count =0; count  

코드 설명:

우리가 취한 단계는 -

  • 먼저 글자 수의 해시맵을 준비했습니다.

  • 그런 다음 문자 수를 기준으로 지도를 정렬했습니다.

  • 마지막으로 정렬된 문자에서 res 문자열을 생성했습니다.

출력

콘솔의 출력은 -

<프리>프리