9、回文数
一、问题描述
二、算法思想
查看一个数是否是回文数关键是怎么把这个数反过来,反过来以后再比较就行了
1、定义一个变量ref使其为0,用来记录一步一步反转的值
2、当传进来的x大于0时执行循环,ref等于其值乘以10再加上x对10取余,然后x再对10整除。这样的话每次都能从x中取出一位数,加入到ref中,依次取完。
3、将反转后的数ref与存在num变量中的x的值比较,相等返回True,否则返回False
三、例子
第一次循环
x = 123
ref = 0 x 10 + 123 % 10 =3
x = 123 // 10 = 12
第二次循环
x = 12
ref = 3 x 10 + 12 % 10 =32
x = 12 // 10 = 1
第三次循环
x = 1
ref = 32 x 10 + 1 % 10 =321
x = 1 // 10 = 0
第四次循环不满足条件,退出循环
四、代码
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
ref = 0
num=x
while x > 0:
ref = ref * 10 + x % 10
x //=10
return ref == num