【LeetCode】回文数--不转化为str

题目:判断一个整数为回文数,前提时不能转化为str
比如1234321是回文数,而-1234321则是False

对整数是否是回文数的判断可以分为三种情况:

  • 数字<0或以0结尾的一定不是回文数
  • 位数为1的一定是回文数
  • 普通整数,逆序与原整数相等为回文数。这种情况还可以简化,只要判断前半边数字和后半边逆序相等即可,对数字不断对10取余,取整,就能得到右半边的逆序和剩余的左半边。
    python代码实现如下
class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if 10 > x >= 0:
            return True
        if x <0 or ( not x%10):
            return False       
            
        reversed_x = 0
        while x > reversed_x:
            reversed_x = 10 * reversed_x + x % 10
            x = x//10
        return x== reversed_x or reversed_x//10==x # 整数为偶数、技术两种情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值