python怎样反转整数?思路与实现方法分享
Admin 2021-05-21 群英技术资讯 1467 次浏览
文本主要给大家分享使用python怎么实现整数反转,下面分享了实现思路以及几种实现整数反转的方法,感兴趣的朋友可以参考,下面我们就一起来看看python实现整数反转要怎么做吧!注意文本示例在是python3实现。
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123 输出:321
示例 2:
输入:x = -123 输出:-321
示例 3:
输入:x = 120 输出:21
示例 4:
输入:x = 0 输出:0
思路1:将其转为字符串进行翻转,并进行正负的判断。最后,题目要求如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0
class Solution:
def reverse(self, x: int) -> int:
str1 = str(x)
if str1[0] == '-':
str1 = str1[0] + str1[:0:-1]
else:
str1 = str1[::-1]
return int(str1) if -2147483648<int(str1)<2147483648 else 0
思路2:不使用字符串。当翻转后的数字大于条件就返回0
class Solution:
def reverse(self, x: int) -> int:
y, res = abs(x), 0
# 则其数值范围为 [−2^31, 2^31 − 1]
boundry = (1<<31) -1 if x>0 else 1<<31
while y != 0:
res = res*10 +y%10
if res > boundry :
return 0
y //=10
return res if x >0 else -res
改进:
class Solution:
def reverse(self, x: int) -> int:
str1 = str(x)
if str1[0] == '-':
str1 = str1[0] + str1[:0:-1]
a=int(str1)
if (1<<31)<abs(a):
return 0
else:
str1 = str1[::-1]
a= int(str1)
if a>(1<<31) -1:
return 0
return a
答:这是leetcode上的一道编程算法题,感觉还是蛮经典的,今天就拿出来给大家分享一下!给出一个3位的正整数,你需要将这个整数中每位上的数字进行反转。例如:输入: 123,输出: 321 。大家先不看下面答案,看看如果是自己,可以想出几种Python方式来解决!
下面分别来说说几种实现的方式:
1、取余取整方式
class Test:
def reverseInteger(self, number):
g = number%10 #取出个位数
s = (int(number/10))%10 #取出十位数
b = int(number/100) #取出百位数
return g*100+s*10+b
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) #输出结果:321
2、使用栈的方式
class Test:
def reverseInteger(self, number):
number = str(number) # 模拟入栈
l = list(number)
result = ""
while len(l) > 0:
result += l.pop() # 模拟出栈
return int(result)
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) # 输出结果:321
3、使用切片的方式
class Test:
def reverseInteger(self, number):
number=str(number)
result=number[::-1] #python中切片的特殊用法
result=(int(result))
return result
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123))
4、整数转字符串,反转字符串,然后再转整数
class Test:
def reverseInteger(self, x):
plus_minus = ""
reverse_x = ""
if x < 0:
plus_minus = "-"
x = -x
for i in str(x):
reverse_x = i + reverse_x
reverse_x = plus_minus + reverse_x
if int(reverse_x) > pow(2, 31) - 1 or int(reverse_x) < pow(-2, 31):
return 0
return int(reverse_x)
if __name__ == "__main__":
ts = Test()
print (ts.reverseInteger(123)) #输出结果:321
关于python怎样反转整数的介绍就到这,之前我们也有介绍过python反转字符串,希望这些对大家学习python有帮助,更多python反转整数的内容,可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python 获取页面所有a标签下href的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在本文中,我们用代码详细说明了Python中超实用的5个函数的重要作用,这些函数虽然简单,但却是Python中功能最强大的函数,下面一起来看看文章的详细介绍吧,希望对你的学习有所帮助
这篇文章主要介绍了Python中模块(Module)和包(Package)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于内置模块OS如何打造SHELL端文件处理器的相关内容,下面一起来看一下,希望对大家有帮助。
这篇文章主要为大家介绍了python编写第一个交互程序示例教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008