码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode代码练习(五)

时间:2018-03-26 22:29:04      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:signed   符号   col   leetcode   sig   code   str   etc   去除   

Given a 32-bit signed integer, reverse digits of an integer.

给定一个范围为 32 位 int 的整数,将其颠倒。

 

 

 1 var reverse = function(x) {
 2     var str, arr, num;
 3     if (x > (Math.pow(2, 31) - 1) || x < -(Math.pow(2, 31))) {
 4         return 0;
 5     }
 6     if (x >= 0) {
 7         str = x + "";
 8         arr = str.split(‘‘);
 9         arr = arr.reverse();
10         str = arr.join(‘‘);
11         num = +str;
12         if (num > (Math.pow(2, 31) - 1)) {
13             return 0;
14         } else {
15             return +str;
16         }
17     } else {
18         x = -x;
19         str = x + "";
20         arr = str.split(‘‘);
21         arr = arr.reverse();
22         str = arr.join(‘‘);
23         num = -(+str);
24         if (num < -(Math.pow(2, 31))) {
25             return 0;
26         } else {
27             return -(+str);
28         }
29     }
30 };

该题对于JavaScript比较简单,给出的三个例子基本就把所有的难点都分别列出来了。

主要考虑几种情况。

  1. 超出32位Int整数,要返回0。
  2. 小于0的数字需要先将符号位提取,然后反转,然后再将符号加上。
  3. 末尾几位为0的,在反转之后,0就不存在了,所以要将末尾的0都去除。
  4. 反转之后的数组也要考虑其范围,如果反转之后超出32位Int整数,也需要返回0。

Leetcode代码练习(五)

标签:signed   符号   col   leetcode   sig   code   str   etc   去除   

原文地址:https://www.cnblogs.com/menmenbule/p/8654074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!