在力扣做了一个题,我看了别人的答案,原来是用字符串的方法,我的太复杂了,不过还是想搞清楚哪里出了问题:
题目是:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
我的代码如下:
最后的结果1000021的测试输出是true,应该是false
class Solution:
def isPalindrome(self, x):
if x < 0:
return False
digit=1
x_d = x
while x_d//10 != 0:
digit += 1
x_d = x_d//10
digit_back = 1
digit_front = digit-digit_back
back = x%(10**digit_back)//(10**(digit_back-1))
front = x//(10**digit_front)
while digit_front >= digit_back:
if front == back:
x = x-front*10**(digit_front)
digit_back += 1
continue
else:
return False
if digit_front-digit_back <= 1:
return True
else:
return False