zoukankan      html  css  js  c++  java
  • Palindrome number

    题目要求不能用额外的空间,这样就不能将数字转成str,然后递归了(递归要用到额外的空间)。

    开始的想法是:把最高位的数字拿来和最低为的数字比较,若相等,则去掉最高位和最低位的数字,重复之前的操作,否则,返回False;

    用的方法是整除和取余,可是没有考虑到例如1000021的情况,取余后得到的是21,前面的0全部忽略了。只适用于数字中除了中间的是0其他不是0的情况,如“123321”,“12021”;这是我欠考虑的。

    这样,有一个方法是将数字反转,判断反转后的数字和原来的是否相等。

    class Solution:
        # @return a boolean
        def isPalindrome(self, x):
            if x<0: return False    
            else:
                reversed_Num=0
                y=x
                while(y!=0):
                    temp=y%10
                    reversed_Num=reversed_Num*10+temp
                    y=y//10 
                return reversed_Num==x
  • 相关阅读:
    文件载入功能
    代码调试功能
    实用项
    连贯操作
    AR模式
    表名操作
    字段映射
    ThinkPHP中的模型二
    创建数据对象
    HDU 4888 Redraw Beautiful Drawings(最大流+判最大流网络是否唯一)
  • 原文地址:https://www.cnblogs.com/iois/p/3947410.html
Copyright © 2011-2022 走看看