python怎样反转整数?思路与实现方法分�

Admin 2021-05-21 群英技术资� 328 次浏�

       文本主要给大家分享使用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       输出�

       思路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:不使用字符串。当翻转后的数字大于条件就返�

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  
       补充:问:说说Python反转三位整数有几种方法?

       答:这是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反转整数的内容,可以关注其他相关文章�

文本转载自脚本之�

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容�

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻�
7X24小时快速响�
一站式无忧技术支�
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 � 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部