Leetcode 7.反转整数 By Python

思路

python提供了方便的字符串反转方法,所以还是蛮简单的这题

注意几个坑:

  • 0结尾的数字反转后要去除
  • 0-9的数字不存在反转问题,直接输出就好了

代码

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        s = str(x)
        if s[0] == '-':
            num = s[1:].lstrip('0')
            x = -int(num[::-1])
            if x > pow(2,31)-1 or x < -pow(2,31):
                return 0
            else:
                return x
        elif len(s) == 1:
            return int(s)
        else:
            x = int(s[::-1].lstrip('0'))
            if x > pow(2,31)-1 or x < -pow(2,31):
                return 0
            else:
                return x
#每种情况都判断一次是否溢出稍显繁琐,可以把它放在最后的return 语句里顺便判断

原文地址:https://www.cnblogs.com/MartinLwx/p/9688750.html

时间: 2024-09-29 16:15:19

Leetcode 7.反转整数 By Python的相关文章

反转整数(Python实现)很容易懂的那种

题目: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31,  2^31 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-i

Leetcode 7 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [?231,  231 ? 1].根据这个假设,如果反转后的整数溢出,则返回 0. 解答: class Solution: def reverse(self, x): """ :type x: int :rtype: int

leetcode——Reverse Integer 反转整数数字(AC)

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 这个题比较简单,考虑特殊情况如12000,注意检查反转后数字是否会越界溢出.代码如下: class Solution { public: int reverse(int x) { bool minus = false; short int splitNum[10]; int i = 0, j = 0; unsign

关于反转整数

在leetcode上就见了这题: 经典的反转整数,遇见过很多次了,本以为很简单,分分钟码出来,结果却大失所望,哎,看来以后还是得多想想特殊情况呀~~ 不多说,先把坑挖出来,一共两个坑: 1.反转后可能溢出,此时应该返回0: 2.关于尾数为0时,应舍去: 由于采用数学方法获取各位数,并非用文本反转,所以坑2就不用考虑了, 关键是坑1,如何判别溢出呢?可以通过获取INT_MAX和INT_MIN来辅助,由于是乘法溢出,故采用将最值除上相应值,这样避免判断最值情况. 一切尽在代码中: class Sol

【leetcode】Clone Graph(python)

类似于二叉树的三种遍历,我们可以基于遍历的模板做很多额外的事情,图的两种遍历,深度和广度模板同样也可以做很多额外的事情,这里举例利用深度优先遍历的模板来进行复制,深度优先中,我们先访问第一个结点,接着访问第一个邻接点,再访问邻节点的邻节点.... class Solution: # @param node, a undirected graph node # @return a undirected graph node def cloneGraph(self, node): if None =

[leetcode]Merge k Sorted Lists @ Python

原题地址:https://oj.leetcode.com/problems/merge-k-sorted-lists/ 题意:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 解题思路:归并k个已经排好序的链表.使用堆这一数据结构,首先将每条链表的头节点进入堆中,然后将最小的弹出,并将最小的节点这条链表的下一个节点入堆,依次类推,最终形成的链表就是归

[leetcode]Search for a Range @ Python

原题地址:https://oj.leetcode.com/problems/search-for-a-range/ 题意: Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithm's runtime complexity must be in the order of O(log n). If the target is not

[leetcode]Search a 2D Matrix @ Python

原题地址:https://oj.leetcode.com/problems/search-a-2d-matrix/ 题意: Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers in each row are sorted from left to right. The first integer o

[leetcode]Evaluate Reverse Polish Notation @ Python

原题地址:https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ 题意: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Some examples