パリンドロームのチェック方法


以下に、パリンドロームをチェックするためのいくつかの方法と、それぞれの方法のコード例を示します。

方法1: 反転して比較する 一番簡単な方法は、与えられた文字列を反転させて元の文字列と比較する方法です。

def is_palindrome(string):
    reversed_string = string[::-1]
    return string == reversed_string
# 使用例
print(is_palindrome("level"))  # True
print(is_palindrome("radar"))  # True
print(is_palindrome("hello"))  # False

方法2: ポインタを使用する もう一つの方法は、文字列の先頭と末尾からポインタを進めていき、対応する文字を比較する方法です。

def is_palindrome(string):
    start = 0
    end = len(string) - 1
    while start < end:
        if string[start] != string[end]:
            return False
        start += 1
        end -= 1
    return True
# 使用例
print(is_palindrome("level"))  # True
print(is_palindrome("radar"))  # True
print(is_palindrome("hello"))  # False

方法3: 再帰を使用する 再帰を使ってパリンドロームをチェックする方法もあります。

def is_palindrome(string):
    if len(string) <= 1:
        return True
    if string[0] != string[-1]:
        return False
    return is_palindrome(string[1:-1])
# 使用例
print(is_palindrome("level"))  # True
print(is_palindrome("radar"))  # True
print(is_palindrome("hello"))  # False

これらは、パリンドロームをチェックするためのいくつかの一般的な方法です。どの方法を選ぶかは、特定のケースや性能要件によって異なる場合があります。