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

JavaScript에서 문자열로 구성할 수 있는 회문 수 계산

<시간/>

문자열을 첫 번째 인수(예:str)로, 숫자(예:num)를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.

함수는 주어진 문자열 str에서 구성할 수 있는 길이가 정확히 num인 회문 문자열의 수를 계산해야 합니다. 그러면 함수가 최종적으로 개수를 반환해야 합니다.

예를 들어 -

입력 문자열과 숫자가 -

인 경우
const str = 'ij';
const num = 4;

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

const output = 4;

왜냐하면 그 네 가지 가능한 회문 문자열은 -

'iiii', 'jjjj', 'ijji', 'jiij'

접근 방식:

먼저 해시 세트를 사용하여 주어진 문자열의 고유한 문자 수를 계산합니다. 회문의 길이가 홀수인 경우 중간 문자는 u를 선택할 수 있으며 여기서 u는 문자열의 고유 문자 수입니다.

num이 짝수이면 다음과 같은 가능성이 있습니다. -

power(u, num/2)

num이 홀수인 경우 해당 위치에 대해 u개의 선택 항목이 있으므로 이 숫자에 u를 곱해야 합니다.

예시

다음은 코드입니다 -

const str = 'ij';
const num = 4;
const findValidPalindromes = (str = '', num = 1) => {
   const set = new Set();
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      set.add(el);
   };
   const u = set.size;
   if(num & 1){
      return Math.pow(u, num/2) * u;
   }else{
      return Math.pow(u, num/2);
   };
};
console.log(findValidPalindromes(str, num));

출력

다음은 콘솔 출력입니다 -

4