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

JavaScript의 문자 빈도에 따른 인코딩 문자열

<시간/>

문제

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

우리 함수는 새로운 문자열의 각 문자가 원래 문자열에 한 번만 나타나는 경우 '(' 또는 해당 문자가 원래 문자열에 두 번 이상 나타나면 ')'인 입력 문자열을 기반으로 새 문자열을 만들어야 합니다.

그리고 대문자를 무시해야 합니다.

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

인 경우

입력

const str = 'Success';

출력

const output = ')())())';

예시

다음은 코드입니다 -

const str = 'Success';
const mapString = (str = '') => {
   const mainStr = str.toLowerCase()
   const hash = {}
   let res = ''
   for (let char of mainStr) {
      hash[char] = ~~hash[char] + 1
   }
   for (let char of mainStr) {
      if (hash[char] > 1) {
      res += ')'
   } else {
      res += '('
   }
}
   return res
};
console.log(mapString(str));

출력

)())())