使用 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP