連線字串以在 JavaScript 中形成迴文對
問題
我們需要編寫一個 JavaScript 函式,該函式接收一個字串陣列作為唯一引數。該函式應該返回一個數組的陣列,其中包含所有連線字串的索引對,連線後會生成一個新的迴文字串。
例如,如果輸入的函式為:
const arr = ['tab', 'cat', 'bat'];
那麼輸出應該是:
const output = [[0, 2], [2, 0]];
輸出說明
因為 'battab' 和 'tabbat' 兩個字串都是迴文。
示例
程式碼如下:
const arr = ['tab', 'cat', 'bat'];
const isPalindrome = (str = '') => {
let i = 0;
let j = str.length - 1;
while (i < j) {
if (str[i] != str[j]) return false;
i++;
j--;
};
return true;
};
const palindromePairs = (arr = []) => {
const res = [];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (isPalindrome(arr[i] + arr[j])) {
res.push([i, j])
}
if (isPalindrome(arr[j] + arr[i])) {
res.push([j, i])
};
};
};
return res;
};
console.log(palindromePairs(arr));程式碼說明
這裡我們使用了一個輔助函式 isPalindome() 來檢查一個字串是否為迴文,而我們的主函式使用所有組合來生成所有可能的對,以及符合我們條件的對,它們的索引被推送到 res 陣列中。
輸出
控制檯輸出如下:
[ [ 0, 2 ], [ 2, 0 ] ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP