leetcode 7. 反转整数(python3)
题目描述
给定一个 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)相关推荐
- LeetCode 7 反转整数
给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假 ...
- 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...
- JAVA怎么将整数反转_【leetcode刷题】[简单]7.反转整数(reverse integer)-java
反转整数 reverse integer 题目 给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 ...
- 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串
LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...
- 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 ...
- leetcode——344. 反转字符串
leetcode--344. 反转字符串 问题概述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入 ...
- leetcode 344. 反转字符串 541. 反转字符串 II 双指针解
目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...
- C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...
- 学长冷月带你怒刷LeetCode之反转链表
本文目录 前言 题目描述 冷月题解 总结一下 前言 链表的操作是数据结构中最基础的算法之一,反转列表也是一道经典的笔试题.很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间 ...
- Leetcode 557 反转字符串中的单词
Leetcode 557 反转字符串中的单词 题目描述: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例1: 输入:s = "Let's ...
最新文章
- stm32 堆和栈(stm32 Heap Stack)
- Ubuntu 13.04 安装 SSH SERVER记
- 绝大部分项目都是跟金融创新、互联网、移动互联网、社区经济、分享经济、互联网金融有关...
- mysql 多项式_多项式拟合和最小二乘问题
- Hi3516A开发--烧写/启动模式
- boost::mpi模块实现传输数据类型的骨架和内容的通信器的测试
- c# 运算符 ? ??
- redhat 挂载 iso文件 提示 mount :not a directory
- 虚拟实验工场大学计算机实验报告答案,虚拟实验实验报告 - 实验报告 - 书业网.doc...
- linux下的字符设备驱动
- ffplay播放器移植VC的工程:ffplay for MFC
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
- apk倒入android studio,反编译apk导入android studio
- 小米 12S Utra 莱卡水印生成在线工具
- 数据统计分析常用指标
- win7配置计算机失败还原更改,win7系统更新补丁提示“配置失败还原更改”的解决方法...
- 手机连接投影机的步骤_投影仪如何投屏手机?手机连接投影仪的步骤
- 基于鸿蒙系统的APP测试技术,快来入坑
- 浏览器直接打开excle文件
- dapper mysql_.NET Core Dapper操作mysql数据库的实现方法
热门文章
- 重构:改善既有代码的设计 精彩书评一
- 2,1 模型评估与选择
- 5.2 tensorflow2实现多元线性回归、完成广告投放销售额预测——python实战
- 解决Ubuntu18.04使用快捷键 Ctrl+Alt+T 无法打开终端的问题
- Kotlin — 使用Eclipse运行第一个Kotlin程序,打印“Hello World”!
- Flutter拓展 一步一步教你安装Flutter(最火的移动框架)
- 7-6 A-B (20 分)
- HTML5 — 知识总结篇《V》【a元素】
- Linux查看当前系统的版本信息
- JavaScript 随笔