LeetCode No.9 Palindrome Number 20170410

Determine whether an integer is a palindrome. Do this without extra space.

题目大意:输入一个整数,判断其是否为回文数。不能使用额外空间。

解题思路:由于不能使用额外空间,所以不能把整数变成字符串。由于回文数是正着反着都是一样的,所以可以先把一个数倒过来,再看看它是否跟原数相等。注意几点,一个是倒过来之后是否会溢出,第二是小于0的数返回false,第三是个位数都是回文数。

第一步,判断是否小于0,第二步,判断是否个位数,第三步,将原来的数调转顺序,判断是否溢出。第四步,判断调转过来后跟原来的数是否相等。

class Solution(object):
  def isPalindrome(self, x):
  """
  :type x: int
  :rtype: bool
  """
  xrev = 0
  if (x < 0):
    return False
  elif (x <=9) and (x >= 0):
    return True
  else:
    y = x
  while y > 0:
    xrev = xrev * 10 + y % 10
    y = y / 10
  if x > 2147483647:
    return False
  if xrev == x:
    return True
  return False

原文地址:https://www.cnblogs.com/fangdai/p/6690180.html