• 03 LeetCode --- 反转整数


    题目:

    给定一个 32 位有符号整数,将整数中的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

    假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

    思路:这个代码其实我提交一次错一次才知道思路。。刚开始用余数和整除把百十位分开然后再合起来,很麻烦,条件很多。

    直接转成字符串,再通过[::-1]的写法把字符串反转,很方便而且代码也很少。

    1.  转成字符串
    2. 判断第一个字符是否为‘-’ ,即是是否为负号
    3. 如果是负号就从下标为1的字符切片(主要为了去掉负号),并且用[::-1]反转字符串,这里[::-1]的意思就是从开始到结束,每次以-1的step取值。
    4. 如果正好从下标为0开始切片。反转完成后转换成整型,因为题目要求有取值范围,所以要判断是否>2147483647或<-2147483647
    5. 完成

    代码:

    python

    def func1(x):
        s = str(x)
        if s[0] == '-':
            s = s[1:][::-1]
            x = -int(s)
            if x >= (-2 ** 31):
                return x
        else:
            s = s[::-1]
            x = int(s)
            if x <= 2 ** 31 - 1:
                return x
        return 0
  • 相关阅读:
    小心使用宏
    常见文件、目录、路径操作函数
    链表法页框的分配和去配
    获取调试符号文件
    Visual C++ Runtime Error 调试
    HEAP: Free Heap block XXXX modified at XXXX after it was freed
    磁盘操作 API
    【转】浅谈大型网站动态应用系统架构 Mr
    jQuery1.3.1 Tab选项卡 Mr
    spring依赖注入思想 Mr
  • 原文地址:https://www.cnblogs.com/yanyufeng/p/9879587.html
Copyright © 2020-2023  润新知