2019-01-29——回文数

2019-01-29  本文已影响0人  Ribosome_He

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

python解答:

class Solution:
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        """
        将X转换为list类型,[::-1]得到列表的倒序,与原列表若相同则是回文,否则不是
        """
        # tostr = list(str(x))
        # return tostr == tostr[::-1]
        
        """
        将x转换为字符串,遍历字符串,比较对应位置的字符,若不相同则不是回文
        """
        # tostr = str(x)
        # for n in range (int(len(tostr)/2)):
        #     if tostr[n] != tostr[len(tostr)-1-n]:
        #         return False
        # return True
        """
        不转换整数X,通过x%10得到末尾的数字,去除末尾数字后等于x/10,末尾数字赋值给r。
        第二次循环继续通过x%10得到末尾的数字,去除末尾数字后等于x/10,通过r*10+x%10得到后面部分的回
        文。当x(前半部分)小于后半部分的值,说明已到达原整数的一半,此时可对比r和x,若相同则是回文
        """
        #负数和末尾是0的非零正整数都不是回文
        r = 0
        if x < 0 or (x%10 == 0 and x != 0):
            return False
        while (x>r):
            r = r * 10 + x % 10
            x = int(x/10)
        #例如:12321,通过循环得到r=123,x=12,此时判断r/10是否等于x就可以
        return x == r or x == int(r/10)
上一篇下一篇

猜你喜欢

热点阅读