LeetCode in Python-9. Palindrome Number 回文数

  1. 题目
  2. 解法1、计算反序的值
  3. 解法2、字符串逆序比较
  4. 解法3、
  5. 解法4、
  6. 出处

解法1、计算反序的值

class Solution:
    def isPalindrome(self, x: int) -> bool:
        num = 0
        a = abs(x)

        while(a!=0):
            temp = a % 10
            num = num * 10 + temp
            a = a // 10

        if x >= 0 and x == num:
            return True
        else:
            return False

解法2、字符串逆序比较

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x >= 0 and int(str(x)[::-1]) == x:
            return True
        else:
            return False

解法3、

class Solution:
    def isPalindrome(self, x: int) -> bool:
        return str(x) == str(x)[::-1]

解法4、

class Solution:
    def isPalindrome(self, x: int) -> bool:
        r = list(map(lambda i: int(10**-i * x % 10), range(int(math.log10(x)), -1, -1))) if x > 0 else [0, x]
        return r == r[::-1]
  • 思路是一样的,这里把整数转成了列表而不是字符串
  • 比如一个整数12321,我想取出百位数可以这么做:12321 * 10^{int(log_{10}12321)} % 10 = 123 % 10 = 3

在这里插入图片描述
1、map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map(function, iterable, …)
function – 函数
iterable – 一个或多个序列

2、

出处

1、https://www.bilibili.com/video/av45840363
3、4、对应题目下Knife丶的题解


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 452966517@qq.com

文章标题:LeetCode in Python-9. Palindrome Number 回文数

文章字数:314

本文作者:Night Zhang

发布时间:2019-07-26, 17:25:52

最后更新:2019-07-26, 17:26:52

原始链接:https://night-zhang.github.io/2019/07/26/LeetCode-in-Python-9-Palindrome-Number-回文数/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

github