【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 # 整数为偶数、技术两种情况
发布了1 篇原创文章 · 获赞 0 · 访问量 7

猜你喜欢

转载自blog.csdn.net/learner_Geng/article/details/105715400