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

4881

被折叠的 条评论
为什么被折叠?



