leetcode: 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

这一题和整数反转很像,都需要给数做一个反转,但是从转为字符串的角度来看,反而更加简单了

代码如下:

1
2
3
4
5
6
7
8
class Solution:
def isPalindrome(self, x: int) -> bool:
str_x = str(x)
x = ''
if str_x[len(str_x) - 1::-1] == str_x:
return True
else:
return False

进阶任务:如何在不转为字符串的前提下解决这个问题

在不转为字符串的前提下,我们只要用数字的方法计算出反转后的数字大小进行比较就可以达到目的

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def isPalindrome(self, x: int) -> bool:
if x < 0 :
return False
m,n = x,0

while m:
n = n*10 + m%10
m = m//10

if x == n:
return True
else:
return False

今天的比较简单,留空看看大型数据库吧= =

我能够允许你逃避过去,不过至少从现在或者明天开始都不要再逃避。 -「无头骑士异闻录」