gpt4 book ai didi

python3整数反转的实现方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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 。

?
1
2
3
4
5
6
7
8
9
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 。

?
1
2
3
4
5
6
7
8
9
10
11
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

改进:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

补充:问:说说Python反转三位整数有几种方法?

答:这是leetcode上的一道编程算法题,感觉还是蛮经典的,今天就拿出来给大家分享一下!给出一个3位的正整数,你需要将这个整数中每位上的数字进行反转。例如:输入: 123,输出: 321 。大家先不看下面答案,看看如果是自己,可以想出几种Python方式来解决! 。

下面分别来说说几种实现的方式

1、取余取整方式 。

?
1
2
3
4
5
6
7
8
9
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、使用栈的方式 。

?
1
2
3
4
5
6
7
8
9
10
11
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、使用切片的方式 。

?
1
2
3
4
5
6
7
8
9
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、整数转字符串,反转字符串,然后再转整数 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

到此这篇关于python3整数反转的实现方法的文章就介绍到这了,更多相关python3 整数反转内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/qq_43710889/article/details/115341615 。

最后此篇关于python3整数反转的实现方法的文章就讲到这里了,如果你想了解更多关于python3整数反转的实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com