python3整数反转

python3整数反转

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 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100091.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • KAZE FEATURES「建议收藏」

    KAZE FEATURES「建议收藏」KAZE系列笔记:1.  OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波2.  OpenCV学习笔记(28)KAZE 算法原理与源码分析(二)非线性尺度空间构建3.  OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述4.  OpenCV学习笔记(30)KAZE 算法原理与源码分析(四)KAZE特征的性能分析与比较5.  

    2022年6月28日
    27
  • kafka批量删除topic_查看kafka集群状态命令

    kafka批量删除topic_查看kafka集群状态命令当启动kafka的服务出现Mapfailed时,需要把有死循环的topic删除1、删除kafka存储目录(server.properties文件log.dirs配置,默认为”/tmp/kafka-logs”)相关topic目录2、Kafka删除topic的命令是:bin/kafka-topics.sh–delete–zookeeper【zookeeperserver(主机ip:2181)】–topic【topicname】如果kafaka启动时加载的配置文件中s.

    2022年10月17日
    4
  • hdu 4908 BestCoder Sequence

    hdu 4908 BestCoder Sequence

    2021年12月2日
    42
  • 五、eclipse如何创建一个ftl(FreeMarker)的文件和设置ftl文件的显示风格(ftl文件高亮显示)

    五、eclipse如何创建一个ftl(FreeMarker)的文件和设置ftl文件的显示风格(ftl文件高亮显示)1、首先需要在eclipse中去下载一个FreeMarker插件https://blog.csdn.net/IT_CREATE/article/details/86682538 2、创建ftl的文件(有多种方式,我会分别介绍)2.1利用file来创建,我们new个file文件写上页面的名字,后缀名改为ftl这样就创建好了,不过里面没有任何内容,我们需要自己添加一些基…

    2022年6月17日
    27
  • Linux进程间通信

    Linux进程间通信

    2021年8月10日
    58
  • Protel99se基本教程 Protel 99SE从零开始学习教程视频教程「建议收藏」

    Protel99se基本教程 Protel 99SE从零开始学习教程视频教程「建议收藏」Protel如何从零开始学习?找个有实例的书,或有原理图,有PCB的书,把他画好,先从单面板画起,(找个简单的)自己再热转印法制作PCB,钻孔、焊接元件、调试等等,看似后面与学PROTEL无关,但这些可以让你对PCB布线有更深认识,比如、元件封装尺寸一定要精确、焊盘大小、走线粗细、元件布局放置等等,更能总结好的画图经验!更接近实际应用,这样才能掌握画图的乐趣,当我自己布的PCB的发射机,可以用收音…

    2022年5月7日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号