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

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

  1. JavaScriptのテンプレート文字列。

    ES6でテンプレートが導入され、文字列内に式を埋め込むことができるようになりました。 ‘’または“”引用符の代わりに、バッククォート( ``)を使用します。これらは文字列補間のはるかに優れた方法を提供し、式は$ {a+b}のような方法で埋め込むことができます。 +演算子よりもはるかに優れた構文を提供します。 以下はJavaScriptのテンプレート文字列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> &l

  2. JavaScriptでのテンプレート文字列のネスト

    以下は、JavaScriptでテンプレート文字列をネストするためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>