• Leetcode 9 回文数


    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
    
    示例 1:
    
    输入: 121
    输出: true
    示例 2:
    
    输入: -121
    输出: false
    解释: 从左向右读,-121 。 从右向左读,121- 。因此它不是一个回文数。
    示例 3:
    
    输入: 10
    输出: false
    解释: 从右向左读,01 。因此它不是一个回文数。
    进阶:
    你能不将整数转为字符串来解决这个问题吗?
    

    回文数算是算法题里最简单的那种的题目了,如果是c++的话,就是常规的做法,但现在我是个pythoner,所以可以使用列表的一些骚操作来解决这个问题,数字转化为字符串的话,就可以用列表操作了,使用列表的lists[0] == lists[-1]这样的反转属性。

    # 176 ms, 在Palindrome Number的Python提交中击败了62.52% 的用户
    # 内存消耗 : 10.7 MB, 在Palindrome Number的Python提交中击败了0.25% 的用户
    class Solution(object):
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            if x < 0:
                return False
            else:
                flag = 1
                x = str(x)
                for i in range(len(x)//2):
                    if x[i] == x[-i-1]:
                        continue
                    else:
                        flag = 0
                        break
                return bool(flag)
    
    

    但是题目一定希望我们不要多开新的空间,而且进阶要求是不转化为字符串,那么可能就要考虑一些常规做法

    class Solution(object):
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            if x<0 or (x % 10 == 0 and x != 0):
                return False
            y=0
            while(x>y):
            	#构造新的数
                y= x % 10 + y * 10
                #取除个位外的所有书
                x //= 10
            return x==y or x==y//10
    

    那就尝试着把每位数都分离出来,然后组成一个新的数,最后与原数对比,也是很简单的

  • 相关阅读:
    php学习笔记
    附加题-重构的读后总结
    附加题-stack的理解
    (转)php的扩展和嵌入--php的生命周期与变量详述
    homework-09
    html学习笔记之position
    homework-06
    homework-08
    在windows下使用git需要反复输入用户名和密码的问题
    windows命令行编码与nodejs编码格式冲突的解决方式
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072642.html
Copyright © 2020-2023  润新知