0
点赞
收藏
分享

微信扫一扫

【LeetCode 7】整数反转


题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:
输入: 123
输出: 321

示例 2:
输入: -123
输出: -321

示例 3:
输入: 120
输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解题思路

我们可以先忽略数字的正负,因为正负不会影响最后结果,最后加上就可以。

(1)首先判断输入的是否是数字
(2)将数字转换为字符串,去除正负号,使用字符串的翻转函数对其进行操作
(3)将得到的结果添加正负号
(4)返回最后的结果

这里顺便复习一下数组和字符串的几个方法:

  • ​String()​​ : 是将其他类型数据转换为字符串
  • ​split()​​ :将一个字符串分隔成字符串数组
  • ​reverse()​​:用于翻转数组中的元素
  • ​join()​​ :将数组元素转化为字符串,之间用符号分隔
  • ​slice()​​ :从已有的数组中返回选定的元素,第一个参数为开始元素索引,第二个参数为结束元素索引

代码实现

/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
if(typeof x !='number'){
return;
}

const MIN = -2147483648;
const MAX = 2147483647;

const res=x>=0?String(x).split('').reverse().join(''):String(x).slice(1).split('').reverse().join('');

const result = x>=0?parseInt(res):0-parseInt(res);
if(result>=MIN && result<=MAX){
return result;
}else{
return parseInt(0); // 不在范围之内时返回0
}
};

提交结果

【LeetCode 7】整数反转_javascript


举报

相关推荐

0 条评论