Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの文字列から構築できるパリンドロームの数を数える


最初の引数として文字列(strなど)を取り、2番目の引数として数値(numなど)を受け取るJavaScript関数を作成する必要があります。

この関数は、指定された文字列strから構築できる長さnumのすべての回文文字列の数を正確にカウントする必要があります。その後、関数は最終的にカウントを返す必要があります。

例-

入力文字列と数値が-

の場合
const str = 'ij';
const num = 4;

その場合、出力は-

になります。
const output = 4;

これらの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

  1. JavaScriptで回文数を作成するためのステップを数える

    問題 最初で唯一の引数として数値numを受け取るJavaScript関数を作成する必要があります。 私たちの関数は、回文を取得するために必要な特別なステップの数を返す必要があります。特別な手順は、「数字を逆にして、元の番号に追加する」です。結果の数が回文ではない場合は、結果の数が回文になるまで合計を使用して手順を繰り返します。 たとえば、関数への入力が-の場合 入力 const num = 87; 出力 const output = 4; 出力の説明 関係する手順は-であるため 87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353

  2. サイズkの回文数をカウントするプログラムは、Pythonで指定された文字列文字から作成できます。

    アルファベット文字と数字kを表す文字列sがあるとします。 sの文字のみを使用して長さkで構成できる回文数を見つける必要があります。必要に応じて、これらの文字を複数回使用できます。 したがって、入力がs =xy、k =4の場合、パリンドロームは[xxxx、yyyy、xyyx、yxxy]であるため、出力は4になります。 これを解決するには、次の手順に従います- n:=k/2の商 x:=s内の一意の文字の数 return x ^(n + k mod 2) 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(