zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Python-os
    Python-字典Dict
    Linux下使用Apache搭建Web网站服务器
    Linux中FTP安装与配置
    第16章 广域网
    第15章 IPv6
    第14章 思科无线技术
    第13章 网络地址转换NAT
    第12章 安全
    第11章 虚拟局域网
  • 原文地址:https://www.cnblogs.com/yanyufeng/p/9879587.html
Copyright © 2011-2022 走看看