美文网首页Leetcode刷题笔记
第二十五天 Palindrome Number

第二十五天 Palindrome Number

作者: 业余马拉松选手 | 来源:发表于2018-09-14 00:44 被阅读1次

    第二十五天了,尽管总是有很多意外,还能继续坚持着

    相信“傻傻”的坚持,每天看来不写一段“鸡汤”,自己都无法说服自己坚持了吧

    今天这道回文数的题目

    https://leetcode-cn.com/problems/palindrome-number/description/

    思路特别直接,先把数字转成字符串,然后两个指针分别指向头和尾,然后依次比较,如果不相等就跳出,返回false,如果相等,就把两个指针向中间靠近一下

    class Solution:
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            strNum = str(x)
            i = 0
            j = len(strNum)-1
            ret = True
            while i<j:
                if strNum[i] == strNum[j]:
                    i+=1
                    j-=1
                else:
                    ret = False
                    break
            return ret
    

    那么接着就要看,是否有办法不转成字符串呢?

    其实方法也很直接,就是看是否有办法把当前数字逆序了,然后要看下逆序后的数字和之前是否相等即可

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

    那么接着就有一个问题是,逆序的过程中,这个数字是否会越界呢?当然好像在Python中不太可能,但在其他强类型的语言呢?也可能是需要用一个更大类型了吧?

    相关文章

      网友评论

        本文标题:第二十五天 Palindrome Number

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