2019-01-29——回文数
2019-01-29 本文已影响0人
Ribosome_He
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
python解答:
class Solution:
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
"""
将X转换为list类型,[::-1]得到列表的倒序,与原列表若相同则是回文,否则不是
"""
# tostr = list(str(x))
# return tostr == tostr[::-1]
"""
将x转换为字符串,遍历字符串,比较对应位置的字符,若不相同则不是回文
"""
# tostr = str(x)
# for n in range (int(len(tostr)/2)):
# if tostr[n] != tostr[len(tostr)-1-n]:
# return False
# return True
"""
不转换整数X,通过x%10得到末尾的数字,去除末尾数字后等于x/10,末尾数字赋值给r。
第二次循环继续通过x%10得到末尾的数字,去除末尾数字后等于x/10,通过r*10+x%10得到后面部分的回
文。当x(前半部分)小于后半部分的值,说明已到达原整数的一半,此时可对比r和x,若相同则是回文
"""
#负数和末尾是0的非零正整数都不是回文
r = 0
if x < 0 or (x%10 == 0 and x != 0):
return False
while (x>r):
r = r * 10 + x % 10
x = int(x/10)
#例如:12321,通过循环得到r=123,x=12,此时判断r/10是否等于x就可以
return x == r or x == int(r/10)