给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
# 转换为字符串进行首尾对比
class Solution:
def isPalindrome(self, x: int) -> bool:
return str(x) == str(x)[::-1]
# 不转换为字符串,将原数字循环取余(%10),结果作为新值保存,每次将新值*10并与所取余数相加,最后将原值与新值进行比较
class Solution:
def isPalindrome(self, x: int) -> bool:
# 若原数字为负数或末位为0则不是回文数
if x < 0 or (x != 0 and x % 10 == 0):
return False
elif x == 0:
return True
else:
i = 0 # 初始化i以保存取余的数
while x > i: # 若新值即将大于原值则退出循环
i *= 10
i += x % 10 # 新值*10并且+余数,得到原数字末尾的数的反转数
x //= 10 # 舍弃原数字最后一位数
if x == i or i // 10 == x: # 若新值=原数字或新值舍弃最后一位数后等于原数(原数字为奇数则进行舍弃操作),则为回文数
return True
else:
return False