主页 > 知识库 > python3整数反转的实现方法

python3整数反转的实现方法

热门标签:企业做大做强 语音系统 百度AI接口 硅谷的囚徒呼叫中心 Win7旗舰版 呼叫中心市场需求 客户服务 电话运营中心

给你一个 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简单实现整数反转的画解算法

标签:济南 山西 海南 喀什 长沙 崇左 山西 安康

巨人网络通讯声明:本文标题《python3整数反转的实现方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266