zoukankan      html  css  js  c++  java
  • 判断一个整数是否是回文,不用额外空间

    class Solution:
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            
            if x < 0 or (x % 10 == 0 and x != 0):
                return False
            revx = 0
            while(x > revx):
                revx = revx * 10 + x % 10
                x = int(x/10)
            return x == revx or x == int(revx/10)
            
            

    如上,思路就是,负数不是回文,然后计算数字后半部分的反转数,当数字大于反转数时,停止,最后计算前半部分与翻转后的是否相待,最后的or后面,是因为

    如果x的位数是奇数,那么需要把反转后的数也除以10,再比较,比如121,计算到最后,x=1, revx=12,显示那个2是中间的数字,另外,

    if x < 0 or (x % 10 == 0 and x != 0):这里or后面,是因为如果x是10,100,1000,这样的数,计算到最后x=0, revx=1,这样结果反而是true,而这样的数字,
    由于最后一位是0,首位非0,肯定不是回文,

  • 相关阅读:
    JS小功能系列9商品筛选
    JS小功能系列8省市联动
    if u
    js属性
    js初识
    弹性盒
    项目合作
    css重置
    关于响应式布局
    自我定位
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/8284495.html
Copyright © 2011-2022 走看看