leetcode09

这题是数字的回文判断,例如1234321返回true,10返回false。

我的思路是

  1. 数字转换成字符串,reversed倒序取字符串值:1234->4321
  2. 分成两个值:4321->4,321 (防止转成数字时溢出)
  3. 进行两个判断,例如1234321处理后变成1,234321
  4. 那么 (1234321-234321)/1000000 == 1

过程中出现了一个问题,float(a)/float(b),一开始写成float(a/b)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class (object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
if x == 0:
return True
if x < 0:
return False
if x < 10:
return True
str_x = str(x)
reversed_x = str_x[::-1]
list_x = [reversed_x[0], reversed_x[1:]]
a = x - int(list_x[1])
b = 10 ** (len(str_x) - 1)
if float(a)/float(b) == float(list_x[0]):
return True
else:
return False