Pythonで数値の回文を判定するためには、以下のようなシンプルな方法があります。
- 数値を文字列に変換します。
- 文字列の先頭と末尾の文字を比較します。
- 文字が異なる場合は、回文ではないと判定します。
- 文字が同じ場合は、次の文字を比較するためにインデックスを調整します。
- インデックスを動かすことで、文字列の中央に向かって進みます。
- 文字列の中央まで比較が行われた場合、すべての文字が同じであることが確認され、回文であると判定します。
以下は、このアルゴリズムを使ったPythonのコード例です。
def is_palindrome(num):
num_str = str(num)
left = 0
right = len(num_str) - 1
while left < right:
if num_str[left] != num_str[right]:
return False
left += 1
right -= 1
return True
# テスト
print(is_palindrome(12321)) # True
print(is_palindrome(12345)) # False
このコードは、与えられた数値が回文であるかどうかを判定するis_palindrome
関数を定義しています。数値を文字列に変換し、左側と右側の文字を比較していきます。異なる文字が見つかった場合はFalse
を返し、同じ文字である場合は次の文字を比較するためにインデックスを調整します。左側のインデックスが右側のインデックスを超えた場合は、すべての文字が同じであることが確認され、True
を返して回文であると判定します。