Leetcode 9. 回文数

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. 整数反转差不多

  1. 先令整数反转,(这里的循环终止的条件是x>0)
  2. 判断反转后的数如果等于原来的x,那么这个整数就是回文数,或者x = 0 也是回文, x < 0 or reverse_x ! = x不是回文

Note:
先令reverse_x = 0,那x == 0 就不用拿出来单独判断了,因为 x等于0无法进入循环,所以 reverse_x == x可以兼顾到两种情况

你可能感兴趣的:(Leetcode 9. 回文数)