美文网首页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