使用 JavaScript 統計字串中可以構造出的迴文數量


我們需要編寫一個 JavaScript 函式,該函式將字元字串作為第一個引數(例如 str),並將數字作為第二個引數(例如 num)。

該函式應計算可以從給定字串 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

更新於:2021年1月23日

276 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.