LeetCode in Python-9. Palindrome Number 回文数
解法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" 转载请保留原文链接及作者。