• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 -2147483648int(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 = (131) -1 if x>0 else 131
        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 (131)abs(a):
            return 0
        else:
          str1 = str1[::-1]
          a= int(str1)
          if a>(131) -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

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

    您可能感兴趣的文章:
    • Python 实现反转整数的案例(很容易懂的那种)
    • python反转(逆序)字符串的6种方法详细
    • python反转列表的三种方式解析
    • python对数组进行反转的方法
    • python算法题 链表反转详解
    • python简单实现整数反转的画解算法
    上一篇:详解如何利用tushare、pycharm和excel三者结合进行股票分析
    下一篇:python3翻转字符串里的单词点的实现方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python3整数反转的实现方法 python3,整数,反转,的,实现,