查阅资料我得到的结果远没有大佬们的做法更省时间,而且还很麻烦
我的代码(完整):
class Solution:
def isPalindrome(self, x: int) -> bool:
# 若 x 为负数,由于负数不可能是回文数,直接返回 False
if x < 0:
return False
# 保存原始的 x 值,后续用于与反转后的数进行比较
original = x
# 初始化反转后的数字为 0
reversed_num = 0
# 循环直到 x 变为 0
while x:
# 获取 x 的最后一位数字
digit = x % 10
# 将反转后的数字乘以 10 并加上当前最后一位数字,实现反转
reversed_num = reversed_num * 10 + digit
# 去掉 x 的最后一位数字
x //= 10
# 比较原始数字和反转后的数字是否相等,若相等则是回文数,返回 True;否则返回 False
return original == reversed_num
if __name__ == "__main__":
try:
# 获取用户输入
num = int(input("请输入一个整数来判断是否为回文数: "))
solution = Solution()
result = solution.isPalindrome(num)
if result:
print(f"{num} 是回文数。")
else:
print(f"{num} 不是回文数。")
except ValueError:
print("输入无效,请输入一个有效的整数。")
大佬做法:
class Solution:
def isPalindrome(self, x: int) -> bool:
if x<0:return False
x_str=str(x)
return x_str==x_str[::-1]
通过把x变成字符串然后再反转来比较得到的结果是否相等,仅仅几行代码,无论是从简洁度还是代码运行速度都远胜于前者