命名规则:
AAA_Leetcode_BBB XXX【YYY】
AAA表示第N篇,BBB表示Leetcode中的第N道题,XXX是标题,YYY是力扣中的难度等级。
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解法:
整数反转一般考虑转数组,然后反转数据
var reverse = function(x) {
const before = x + '';
let arr = before.split('')
arr.reverse()
if (arr.indexOf('-') === -1){
return arr.join('')
}else {
arr.pop()
arr = ['-',...arr]
}
return Number(arr.join(''))
};
console.log(reverse(-1234)
此解法仍可优化,比如indexOf方法可以直接换成arr[arr.length-1] === '-'
等。时间复杂度O(1) ?, 空间复杂度O(n),n是整数的位数(数组的长度)。
网友评论