Leetcode No.7

本文介绍了两种JavaScript和Python的解决方案来解决LeetCode第7题——反转整数,关注正负号处理和防止溢出的问题。简洁的代码通过将整数转换为字符串进行反转,然后重新解析回整数。同时,文中对比了不同实现的效率和优雅性。

Leetcode No7

在这里插入图片描述


JS 1°

var reverse = function(x) {
let arr = [];
if(x<0){
    let x1=-x;
    let x11=x1.toString();
    let arr = x11.split("");
    arr.reverse();
    let num =- parseInt(arr.join(""));
    if(num<Math.pow(-2, 31)){
        return 0;
    }else{
        return num;
    }
}else if (x>0){
    let x1=x.toString();
    let arr = x1.split("");
    arr.reverse();
    let num = parseInt(arr.join(""));
    if(num>Math.pow(2, 31) - 1){
        return 0;
    }else{
        return num;
    }
}else{
    return 0 ;
}
};

思路很简单,就是变成数组用reverse方法在变回来,考虑一下正负号的问题,一开始没有考虑溢出问题(2^31),加上就ok了,写法很笨很臃肿。

JS 2°

var reverse = function(x) {
    let now = Math.abs(x).toString().split("").reverse().join("");
    if(x < 0){
        return now <= Math.pow(2,31) ? -now : 0;
    }else{
        return now < Math.pow(2,31) ? now : 0;
    }
};


转自大佬的极简解法 思路一样,代码简洁,用了三目运算符

Python

class Solution:
    def reverse(self, x: int) -> int:
        if x == 0:
            return x
        elif x<0:
            x = -x
            str_x= str(x)
            str_x=str_x[::-1]
            x = int(str_x)
            x = -x
            if x>=(-2**31):
                return x
            else:
                return 0
        elif x>0:
            str_x = str(x)
            str_x=str_x[::-1]
            x = int(str_x)
            if x<=(2**31-1):
                return x
            else:
                return 0

python解法,思路一致,用[::-1]实现反转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值