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
  • 相关阅读:
    其他魔术方法
    类型约束和类的魔术常量
    PHP对象遍历、内置标准类与数据转对象
    类的自动加载与对象的克隆
    PHP重载与接口
    面向对象
    PHP基础
    地下城与勇士的项目整理
    mysql建表
    jQuery
  • 原文地址:https://www.cnblogs.com/iois/p/3947410.html
Copyright © 2011-2022 走看看