算法思路:
例如x = 1223221 , 目的是取到末尾的3221 并且把 3221 翻转为 1223 。
reverseNumber记录翻转的后半段数字。
在循环条件x > reverseNumber的条件下,一旦x等于或者小于 后半段的时候,退出循环。
否则,把当前的reverseNumber统统往前移一位,给将来的x个位数腾个地,接着x会丢掉它的个位数,这样便完成了一次交换!
def isPalindrome(x):
x = abs(x)
if x % 10 == 0 and x!=0:
return False
reverseNumber = 0
while x > reverseNumber:
reverseNumber = reverseNumber * 10 + x % 10
x = x // 10
return x == reverseNumber or x == reverseNumber//10
flag = isPalindrome(1223221)
print(flag)