7. 判断一个数是否是回文数。回文数是指正序(从左到右)和倒序(从右到左)读都是一样的整数。例如,121是回文数,而—121不是回文数。要求设计满足题目条件的如下方法:
def isPalindrome(self, x:int) -> bool:
最简单的一个方法就是将数转换为字符串,然后将字符串的正倒序比较。
# 回文数
class Solution:
def isPalindrome(x: int) -> bool:
return str(x) == str(x)[::-1]
x = input("请输入一个数:")
print(Solution.isPalindrome(x))

方法2:我们不用反转整数的所有数字,只需要反转一半数字就可以了,利用回文的对称性。
那么需要用到的循环条件是什么呢?可以根据数字长度来判断。
对于奇数长度的回文数字12321,我们可以拆分成两个数12和123。
对于偶数长度的回文数字123321,我们可以拆分成两个数字123和123。
def isPalindrome(x):
if x < 0 or (x % 10 == 0 and x != 0):
return False
ans = 0
while x > ans:
ans = ans * 10 + x % 10
x //= 10
return x == ans or x == (ans // 10)
x = eval(input("请输入一个数:"))
print(isPalindrome(x))
本文介绍了两种判断一个数是否为回文数的方法。第一种是将数字转换为字符串,直接比较正序和倒序是否相等。第二种方法通过反转一半的数字,利用回文的对称性进行判断,避免了转换为字符串。这两种方法都适用于Python编程,能够有效地检查回文数。
8万+





