9. 回文数
给你一个整数 x
,如果 x 是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121
是回文,而 123
不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101
输出:false
进阶:你能不将整数转为字符串来解决这个问题吗?
Solution:
class Solution:
def isPalindrome(self, x: int) -> bool:
reverse_x = 0
x1 = x
while x1 > 0 :
reverse_x = reverse_x * 10 + x1 % 10
x1 = x1//10
if reverse_x == x:
return True
else:
return False
解法和前一节 7. 整数反转差不多
- 先令整数反转,(这里的循环终止的条件是x>0)
- 判断反转后的数如果等于原来的x,那么这个整数就是回文数,或者x = 0 也是回文,
x < 0 or reverse_x ! = x
不是回文
Note:
先令reverse_x = 0,那x == 0 就不用拿出来单独判断了,因为 x等于0无法进入循环,所以 reverse_x == x
可以兼顾到两种情况