LeetCode9:Palindrome Number

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1:

Input: 121
Output: true

Example 2:

Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Follow up:

Coud you solve it without converting the integer to a string?


LeetCode:链接

思路来源:LeetCode7:Reverse Integer

1. 负数都不是回文数;2,不能通过将数字转为字符串来判断回文,因为使用了额外的空间(即只能使用空间复杂度 O(1) 的方法);3,注意整数溢出问题。

既然不能将数字转字符串,那仍然可以考虑生成一个反转整数,通过比较反转整数和原整数是否相等来判断回文。

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if x < 0:
            return False
        if x == 0:
            return True
        res = 0
        cur = x
        while x:
            res = res * 10 + x % 10
            x = x // 10
        return res == cur

猜你喜欢

转载自blog.csdn.net/mengmengdajuanjuan/article/details/84872026