在 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 ] ]

以上是 在 JavaScript 中连接字符串以形成回文对 的全部内容, 来源链接: utcz.com/z/357896.html

回到顶部