piapia123
ja

回文の判定と生成

テキスト

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

「たけやぶやけた」はそのままでも回文ですが、英文では大文字小文字・句読点・空白を無視して初めて回文になります。3 つの「無視」は決め打ちせずスイッチにしました(既定はすべてオン)。 判定は UTF-16 符号単位ではなくコードポイントで行うため、絵文字や結合文字が壊れることはありません。回文でない場合は両方向に補えます。`abc` は後ろに補うと `abcba`、前に補うと `cbabc` になり、いずれも最短の補い方です。最長の回文部分文字列も表示できます。 計算はすべてブラウザ内で完結し、通信もアップロードも記録もありません。

機能

  • 1 行に 1 つの語や文。行ごとに「回文かどうか」を判定
  • 大文字小文字・句読点(和文・英文・全角)・空白を個別に無視可能
  • 両方向の補完:後ろ(abc → abcba)と前(abc → cbabc)
  • 最長の回文接尾辞/接頭辞による最短の補完
  • 最長の回文部分文字列とその長さを表示可能
  • コードポイント単位の判定で、絵文字や結合文字も壊れない
  • 各行が独立したブロック。行ごとのコピーも一括コピーも可能

使い方

  1. 判定したいテキストを 1 行ずつ貼り付けます
  2. 必要に応じて「大文字小文字・句読点・空白を無視」を切り替えます
  3. 補完や最長部分文字列が必要ならオプションをオンにします
  4. 結果は行ごとに表示され、行末のボタンでコピーできます

よくある質問

なぜ「無視」が既定でオンなのですか?
人は文を読むとき、大文字小文字や句読点を数えないからです。1 文字ずつ厳密に比較したいときは 3 つともオフにしてください。
絵文字は壊れませんか?
壊れません。判定は Unicode のコードポイント単位なので、絵文字は 1 文字として扱われます。UTF-16 符号単位で比較するとサロゲートペアが分割されてしまいます。
補完が 2 方向あるのはなぜですか?
`abc` は `abcba` にも `cbabc` にも補えます。元の文字列を左に置くか右に置くかで変わるため、両方を提示します。いずれも最短の補完です。
データは送信されますか?
いいえ。すべてブラウザのメモリ内で計算し、通信も記録もありません。オフラインでも使えます。

関連ツール