LeetCode 9.回文数
题目描述
思路求解
很基础的一个题,基本上会变成的人都能写出来,说两个思路吧
小白解法 :
- 先判断是否小于零,小于零则返回False
- 大于0则将其转换成字符串
- 比较字符串倒置和原字符串是否相同
大白解法:
- 判断是否小于0,或者是不是10的倍数
- 设置half ,对x取余,然后x整除10,直到x<=half
- 判断x是否等于half,或者half整除10是否等于x
代码实现
class Solution:
"""小白解法"""
def isPalindrome(self, x: int) -> bool:
if x < 0 or (x%10 ==0 and x!= 0):
return False
astr = str(x)
return astr == astr[::-1]
class Solution:
"""大白解法"""
def isPalindrome(self, x: int) -> bool:
if x < 0 or (x%10 ==0 and x!= 0):
return False
half = 0
while x > half:
half = half*10 + x%10
x = x//10
return x == half or half//10 == x
执行结果
小白解法好像是76ms,差不多
欢迎关注公众号 : 数学算法实验室