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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值