回文判定アルゴリズム


  1. 方法1: 反転して比較する 一般的な回文判定方法の1つは、文字列を反転させて元の文字列と比較する方法です。もし反転した文字列と元の文字列が等しい場合、それは回文です。

    以下はPythonでのコード例です:

    def is_palindrome(word):
       reversed_word = word[::-1]
       return word == reversed_word
    # 使用例
    print(is_palindrome("radar"))  # True
    print(is_palindrome("hello"))  # False
  2. 方法2: ポインタを使用する もう1つの方法は、2つのポインタを使用して文字列を前後から比較する方法です。最初のポインタは文字列の先頭を、2番目のポインタは文字列の末尾を指します。ポインタを移動しながら文字を比較し、対応する文字が異なる場合は回文ではありません。

    以下はPythonでのコード例です:

    def is_palindrome(word):
       start = 0
       end = len(word) - 1
       while start < end:
           if word[start] != word[end]:
               return False
           start += 1
           end -= 1
       return True
    # 使用例
    print(is_palindrome("level"))  # True
    print(is_palindrome("world"))  # False
  3. 方法3: リストとスライスを使用する さらに別の方法は、文字列をリストに変換し、スライスを使用して前後を比較する方法です。

    以下はPythonでのコード例です:

    def is_palindrome(word):
       word_list = list(word)
       reversed_word = word_list[::-1]
       return word_list == reversed_word
    # 使用例
    print(is_palindrome("deed"))   # True
    print(is_palindrome("python")) # False

これらは回文判定のための一般的なアルゴリズムとコード例です。他にもさまざまな方法が存在しますが、ここではいくつかを紹介しました。選択したアルゴリズムは、プログラミング言語によって異なる場合がありますが、基本的なアイデアは共通しています。