美文网首页
2019-01-29——回文数

2019-01-29——回文数

作者: Ribosome_He | 来源:发表于2019-01-29 14:15 被阅读0次

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

    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)
    

    相关文章

      网友评论

          本文标题:2019-01-29——回文数

          本文链接:https://www.haomeiwen.com/subject/jwdxsqtx.html