鱼C论坛

 找回密码
 立即注册
查看: 2731|回复: 15

[技术交流] 1.Reverse Integer

[复制链接]
发表于 2019-12-7 19:57:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 _2_ 于 2020-2-9 11:59 编辑
"""
URL -> https://leetcode.com/problems/reverse-integer/
(From LeetCode)
"""
def neverseNum(_input) -> int:
    """
    Neverse Integer\n
    | neverseNum(123) -> 321\n
    | neverseNum(-123) -> -321\n
    | neverseNum(120) -> 21
    
    """
    #Example 1
    if _input > 0 and isinstance(_input / 10,float):
        x = int(str(_input)[::-1])
        return x

    else:
        #Example 2
        if _input < 0 and isinstance(_input / 10,float):
            x = int("-" + str(_input)[:len(str(_input)) - 1:-1])
            return x

        #Example 3
        if isinstance(_input,int):
            x = int(str(_input)[1::-1])
            return x

if __name__ == "__main__":
    #Example 1
    neverseNum(123)

    #Example 2
    neverseNum(-123)

    #Example 3
    neverseNum(120)

有些复杂......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-7 20:00:46 | 显示全部楼层
更简洁。
class Solution:
    def reverse(self, num: int) -> int:
        print(str(num)[::-1])
        num = str(num)[::-1].strip("0")
        if num.endswith("-"):
            num = "-" + num[:-1]
        elif not num:
            return 0
        num = int(num)
        if not -2 ** 31 <= num <= 2 ** 31:
            return 0
        return num
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-7 20:03:10 | 显示全部楼层

你做过?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 20:03:28 | 显示全部楼层

嗯。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-7 20:05:05 | 显示全部楼层

嗯,还没有考虑32位的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 20:37:43 | 显示全部楼层
也写一个:
class Solution:
    def reverse(self, x: int) -> int:
        lst = [0]
        y = abs(x)
        while y:
            lst.append(y % 10)
            y //= 10
        import functools
        y = functools.reduce(lambda x, y: 10 * x + y, lst)
        y = -y if x < 0 else y
        return y if -2 ** 31 <= y <= 2 ** 31 - 1 else 0
class Solution:
    def reverse(self, x: int) -> int:
        y = int(str(abs(x))[::-1])
        y = -y if x< 0 else y
        return y if -2 ** 31 <= y <= 2 ** 31 -1 else 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-7 20:41:05 | 显示全部楼层

要是想刷题可以去 LeetCode 官网看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 21:00:48 | 显示全部楼层
_2_ 发表于 2019-12-7 20:41
要是想刷题可以去 LeetCode 官网看看

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 19:47:16 | 显示全部楼层

戳这个链接 -> https://leetcode-cn.com/problemset/all/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 19:47:47 | 显示全部楼层
_2_ 发表于 2020-2-6 19:47
戳这个链接 -> https://leetcode-cn.com/problemset/all/

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 19:48:18 | 显示全部楼层

国内访问速度更快人一步~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 11:34:23 | 显示全部楼层
我也写一个:
class Solution:
    def reverse(self, x: int) -> int:
        result = (int(temp) if (temp := str(x)[::-1])[-1] != "-" else int("-" + temp[:-1])) ; return result if result > -2 ** 31 and result < 2 ** 31 - 1 else 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 12:07:50 | 显示全部楼层
我也来
class Solution:
    def reverse(self, x: int) -> int:
        f=False
        if x<0:
            x=-x
            f=True
            
        res=0
        power=0
        while x:
            res=res*10+x%10
            x//=10
        
        if -2147483648<res<2147483647:
            return -res if f else res
        else:
            return 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 12:42:13 | 显示全部楼层

你只是用分号将两条语句强制合并在一行了而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 13:11:41 | 显示全部楼层
zltzlt 发表于 2020-3-12 12:42
你只是用分号将两条语句强制合并在一行了而已

对呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 12:09:39 | 显示全部楼层

换一个思路,你可以省略result这个额外变量,这样也是一行(直接放表达式)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表