[Leetcode]Palindrome Number

来源:互联网 发布:医药政策法规数据库 编辑:程序博客网 时间:2024/06/07 03:19

Determine whether an integer is a palindrome. Do this without extra space.

Some hints:

Could negative integers be palindromes? (ie, -1)

If you are thinking of converting the integer to string, note the restriction of using extra space.

You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?

There is a more generic way of solving this problem.

判断一个数是不是回文串~可以直接判断翻转的数字和原数字是否相同,但是要注意翻转数字可能会导致溢出,但python会自动处理整数溢出的情况~

class Solution:    # @return a boolean    def isPalindrome(self, x):        if x < 0: return False        reverse, tmp = 0, x        while tmp:            reverse, tmp = reverse * 10 + tmp % 10, tmp / 10        return reverse == x

还有一种方法,每次比较数字的第一位和最后一位看是否相等,然后去掉这两位继续循环比较~

class Solution:    # @return a boolean    def isPalindrome(self, x):        if x < 0: return False        k = 1        while x / k >= 10: k *= 10        while x:            if x / k != x % 10: return False            x = (x - x / k * k) / 10            k /= 100        return True


0 0
原创粉丝点击