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
  • 相关阅读:
    阅读笔记2
    阅读笔记1
    学习进度条
    第二阶段冲刺第七天站立会议
    第二阶段冲刺第六天站立会议
    第二阶段冲刺第五天站立会议
    阅读笔记4
    第二阶段冲刺第四天站立会议
    第一阶段意见评论
    第12周学习进度总结
  • 原文地址:https://www.cnblogs.com/yanyufeng/p/9879587.html
Copyright © 2011-2022 走看看