【JavaScript】回文判定のコードを書く

【JavaScript】回文判定のコードを書く

回文とは? | 回文判定方法 | 具体例 | JavaScriptによる実装

回文とは?

回文とは、前から読んでも後ろから読んでも同じ文字列を指します。例えば、「あかさたな」や「racecar」などが回文の例です。回文判定は、文字列の前後を比較することでその性質を確認できます。

回文判定方法

回文判定を行うためには、文字列の左右の文字を比較していきます。具体的には、文字列の最初と最後の文字を比較し、それが一致するかを確認します。もし一致すれば、次に2番目と2番目から逆順に比較し、最終的にすべて一致すれば回文と判断します。

回文判定のアルゴリズムは以下の手順で行います:

  • 文字列を正規化する(空白や大文字小文字を無視する場合もあります)。
  • 文字列の最初と最後の文字を比較し、異なれば回文でないと判断します。
  • 文字列の中央まで比較を繰り返します。

具体例

回文の具体例として、いくつかの文字列を挙げてみましょう。

  • 「あかさたな」: 前から読んでも後ろから読んでも同じ文字列であり、回文です。
  • 「racecar」: 英語での回文。前から読んでも後ろから読んでも「racecar」です。
  • 「hello」: この文字列は回文ではありません。前から読んでも後ろから読んでも一致しません。
  • 「madam」: こちらも回文です。前から読んでも後ろから読んでも同じです。

JavaScriptによる実装

では、実際にJavaScriptで回文判定を実装してみましょう。以下に、簡単な回文判定のコード例を示します。


function isPalindrome(str) {
    // 文字列を小文字にし、空白を取り除く
    const normalizedStr = str.replace(/\s+/g, '').toLowerCase();

    // 文字列の前後を比較する
    const reversedStr = normalizedStr.split('').reverse().join('');
    
    return normalizedStr === reversedStr;
}

// 例を試してみる
console.log(isPalindrome("あかさたな"));  // true
console.log(isPalindrome("racecar"));    // true
console.log(isPalindrome("hello"));      // false
    

このコードでは、まず入力文字列から空白を取り除き、小文字に変換しています。次に、文字列を逆順にして元の文字列と比較することで、回文かどうかを判定しています。

コードの説明

  • str.replace(/\s+/g, ''): 文字列からすべての空白を取り除きます。
  • toLowerCase(): 文字列を小文字に変換します。これにより、大文字と小文字の違いを無視できます。
  • split('').reverse().join(''): 文字列を一文字ずつ分割し、逆順に並べて再び文字列に結合します。
  • normalizedStr === reversedStr: 正規化された文字列と逆順にした文字列を比較し、回文かどうかを判定します。

上記のコードでは、簡単な回文判定のアルゴリズムを実装しています。さらに、このコードを発展させることで、例えば大文字小文字や空白を無視して判定するなど、柔軟な回文判定が可能になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です