テキスト反転による回文検出

文字列反転を使用して回文を検出する方法を学びます。回文とは何か、比較のためのテキスト正規化、一般的な回文アルゴリズムを理解しましょう。

Algorithms

詳細な説明

回文とは?

回文は、前から読んでも後ろから読んでも同じになる単語、フレーズ、数字、またはその他の文字のシーケンスです。文字列反転は回文を検出する最も直感的な方法です。

シンプルな回文チェック

function isPalindrome(str) {
  const reversed = [...str].reverse().join("");
  return str === reversed;
}

一般的な回文

単語: racecar, level, madam, radar, civic, kayak, rotor, noon, deed

フレーズ(スペースと大文字小文字を無視):

  • "A man a plan a canal Panama"
  • "Was it a car or a cat I saw"
  • "Never odd or even"

正規化

フレーズ回文では、比較前にテキストを正規化する必要があります:

function isPalindromePhrase(str) {
  const normalized = str.toLowerCase().replace(/[^a-z0-9]/g, "");
  const reversed = [...normalized].reverse().join("");
  return normalized === reversed;
}

効率的な回文チェック(完全な反転なし)

ツーポインタアプローチはより効率的です:

function isPalindrome(str) {
  let left = 0, right = str.length - 1;
  while (left < right) {
    if (str[left] !== str[right]) return false;
    left++;
    right--;
  }
  return true;
}

このアプローチはO(n)時間、O(1)空間で、新しい文字列を作成せずに両端から文字をチェックします。

ユースケース

回文検出はコーディング面接と競技プログラミングの定番です。LeetCode、HackerRank、CodeSignalの問題に登場します。バイオインフォマティクスではDNA配列解析にも使用され、回文配列は制限酵素の認識に役割を果たします。

試してみる — Reverse Text

フルツールを開く