题目描述

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123

输出: -321

示例 3:

输入: 120

输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2**31, 2**31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0.

int类型详解

使用python解题的话上述类型的话不用再考虑,也就是说,python解释器认为int类型不只有32位,所以在python中也就不存在溢出这个问题。因此python可以取巧,先将整数进行反转,然后判断反转之后的整数是否超越边界。

在其他的编程语言中,int一般被规定为32位有符号整数,因此,其所能表示的最大范围是被限定的,32位中第一位被拿来做符号位,只有剩下的31位能够表示数据。
因此,int类型下最大的数据表示为2147483647=2^31-1。其原码、反码、补码都相同如下:

0111 1111 1111 1111 1111 1111 1111 1111
因为32位中有一位符号位,因此只有31位能表示数据,那么好像int的最小数值就应该是-2147483647=-2^31-1。其原码、反码、补码如下

原码为1111 1111 1111 1111 1111 1111 1111 1111,

反码为1000 0000 0000 0000 0000 0000 0000 0000,

补码为1000 0000 0000 0000 0000 0000 0000 0001

所以最小的负数是-2147483647吗?错,不是。

在二进制中,0有两种表方法。

+0的原码为0000 0000 0000 0000 0000 0000 0000 0000,

-0的原码为1000 0000 0000 0000 0000 0000 0000 0000,

因为0只需要一个,所以把-0拿来当做一个最小的数-2147483648。

-2147483648的补码表示为1000 0000 0000 0000 0000 0000 0000 0000,在32位没有原码。

注意,这个补码并不是真正的补码,真正的补码是1 1000 0000 0000 0000 0000 0000 0000 0000,溢出。

所以带符号32位int类型整数为-2147483648~2147483647

解题代码

class Solution:def reverse(self, x):reverse_num=int(str(abs(x))[::-1])if reverse_num.bit_length() > 31:return 0else:return reverse_num if x > 0 else -reverse_num

leetcode 7. 反转整数(python3)相关推荐

  1. LeetCode 7 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假 ...

  2. 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...

  3. JAVA怎么将整数反转_【leetcode刷题】[简单]7.反转整数(reverse integer)-java

    反转整数 reverse integer 题目 给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 ...

  4. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  5. LeetCode (12.整数转罗马数字)JAVA StringBuffer

    LeetCode (12.整数转罗马数字)JAVA StringBuffer 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 1 ...

  6. leetcode——344. 反转字符串

    leetcode--344. 反转字符串 问题概述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入 ...

  7. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

    目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...

  8. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  9. 学长冷月带你怒刷LeetCode之反转链表

    本文目录 前言 题目描述 冷月题解 总结一下 前言 链表的操作是数据结构中最基础的算法之一,反转列表也是一道经典的笔试题.很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间 ...

  10. Leetcode 557 反转字符串中的单词

    Leetcode 557 反转字符串中的单词 题目描述: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例1: 输入:s = "Let's ...

最新文章

  1. stm32 堆和栈(stm32 Heap Stack)
  2. Ubuntu 13.04 安装 SSH SERVER记
  3. 绝大部分项目都是跟金融创新、互联网、移动互联网、社区经济、分享经济、互联网金融有关...
  4. mysql 多项式_多项式拟合和最小二乘问题
  5. Hi3516A开发--烧写/启动模式
  6. boost::mpi模块实现传输数据类型的骨架和内容的通信器的测试
  7. c# 运算符 ? ??
  8. redhat 挂载 iso文件 提示 mount :not a directory
  9. 虚拟实验工场大学计算机实验报告答案,虚拟实验实验报告 - 实验报告 - 书业网.doc...
  10. linux下的字符设备驱动
  11. ffplay播放器移植VC的工程:ffplay for MFC
  12. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
  13. apk倒入android studio,反编译apk导入android studio
  14. 小米 12S Utra 莱卡水印生成在线工具
  15. 数据统计分析常用指标
  16. win7配置计算机失败还原更改,win7系统更新补丁提示“配置失败还原更改”的解决方法...
  17. 手机连接投影机的步骤_投影仪如何投屏手机?手机连接投影仪的步骤
  18. 基于鸿蒙系统的APP测试技术,快来入坑
  19. 浏览器直接打开excle文件
  20. dapper mysql_.NET Core Dapper操作mysql数据库的实现方法

热门文章

  1. 重构:改善既有代码的设计 精彩书评一
  2. 2,1 模型评估与选择
  3. 5.2 tensorflow2实现多元线性回归、完成广告投放销售额预测——python实战
  4. 解决Ubuntu18.04使用快捷键 Ctrl+Alt+T 无法打开终端的问题
  5. Kotlin — 使用Eclipse运行第一个Kotlin程序,打印“Hello World”!
  6. Flutter拓展 一步一步教你安装Flutter(最火的移动框架)
  7. 7-6 A-B (20 分)
  8. HTML5 — 知识总结篇《V》【a元素】
  9. Linux查看当前系统的版本信息
  10. JavaScript 随笔