题目
判断一个整数是否为回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例子
isPalindrome(1) -> True
isPalindrome(121) -> True
isPalindrome(-121) -> False
假设
- 输入为整数
tips
- 你能想到不将整数转换为字符串的方法吗
- 利用除法和取模运算
答案
解法
def isPalindrome(x):
if x<0 or (x%10 == 0 and x != 0):
return False
origin = x
revertedNumber = 0
while x > 0:
revertedNumber = revertedNumber*10 + x%10
x //= 10
return origin == revertedNumber
性能:
- 时间复杂度
O(logn)
- 空间复杂度
O(1)
关键点:
- 利用除法和取模运算