LeetCode每日一题--整数反转
2020-03-15 18:22
471 查看
【前言】坚持日更LeetCode刷题系列
不积跬步,无以至千里;不积小流,无以成江海。愿与诸君共勉!
【题目】7.整数反转
题目描述:给出一个
32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例:
示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为
[−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
思路一:通过将整数通过模10取余的方法得到每一个数码,并将其存入列表中,由于第一个数字不能为0,用if语句进行判断,如果为0,则删除该数字,此过程应该定义在while循环体内,要保证第一个数码不能为0。代码如下:
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ if x == 0: #0为特殊情况,需要单独考虑 return 0 else: flag = 0 #用于标志该数字的正负 if x < 0: x = -x flag = 1 list_x = [] #创立一个空列表,存储得到的数码 while x > 0: #通过%10取余的方法得到数码 i = x%10 list_x.append(i) x = x // 10 while list_x[0] == 0 and len(list_x)>1: #判断第一个数码是否为0,且当只有一个数码,即只有一个数码时,不再进行此过程 del list_x[0] #如果第0个数码为0,则在列表中删除该数码 num = 0 for i in range(len(list_x)): #将所有的数码,还原为整数 num = num*10+list_x[i] if flag == 1: num = -num if num < -2**31 or num > 2**31-1: #判断是否溢出 return 0 return num
运行结果:
思路二:将整数x转化为str类型,并通过lstrip,rstrip的方式,去除掉左端的‘-’和右端的0,再通过列表内的reversed函数对其进行逆序操作。代码如下:
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ x = str(x) #将x转化为str类型 flag =0 #判断x的正负 result = 0 #存储结果 if x[0] =='-': flag=1 num = [] num = list(reversed(x.rstrip('0').lstrip('-'))) #对右边去除0,左边去除‘-’的str(x)进行逆序操作 for i in range(len(num)): result = int(num[i])+result*10 if flag==1: result=-result if result<-2**31 or result>2**31-1: return 0 else: return result
运行结果:
Notice:当我们将列表中的数字还原为整数类型时,对于类似于‘0123’的值,会自动转化成123而不是0123,因此对x的rstrip()操作是不必要的。(大家可以自行试验)
关于其中一些知识的链接:
Python strip、lstrip、rstrip函数讲解
分享就到这里了,欢迎大家一起交流讨论。
注明:
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
- 点赞 2
- 收藏
- 分享
- 文章举报
相关文章推荐
- (LeetCode每日一刷02)反转整数
- Leetcode每日一道 -- 整数反转
- LeetCode每日一题——T7. 整数反转(易):反转字符串
- 【leetcode每日一题】【2019-04-28】7. 整数反转
- 每日一练之Reverse Integer[LeetCode No.7]-翻转整数
- 【LeetCode】- Reverse Integer(将一个整数反转)
- LeetCode 第七题 反转整数
- LeetCode-Easy1.1:两数之和、整数反转、回文整数
- Leetcode7_整数反转
- 【Leetcode】【简单】【17. 整数反转】【JavaScript】
- leetcode NO.7 整数反转 腾讯精选练习50
- LeetCode 7.整数反转
- Leetcode: 反转32-bit整数
- LeetCode 整数反转
- LeetCode:整数反转(Python版本)
- [Leetcode] reverse integer 反转整数
- leetcode--整数反转
- Leetcode题解2:整数反转
- C语言刷LeetCode:简单篇:整数反转
- leetcode_07. 整数反转