第二十五天 Palindrome Number

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

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

今天这道回文数的题目

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中不太可能,但在其他强类型的语言呢?也可能是需要用一个更大类型了吧?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 3,339评论 0 0
  • 链表删除[203] Remove Linked List Elements[19] Remove Nth Node...
    野狗子嗷嗷嗷阅读 6,327评论 4 35
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 17,951评论 2 36
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,208评论 0 13