首页 > 其他 > 详细

LeetCode:7. Reverse Integer(Easy)

时间:2017-12-14 01:12:54      阅读:262      评论:0      收藏:0      [点我收藏+]

题目要求:将给出的整数进行逆序输出

技术分享图片

注意:整数的最大范围-2147483648~2147483647,当翻转后的数超出范围后返回0

思路:对给出的整数除以10,取余和取整;然后对取整部分继续取余和取整,同时将前一次取余的部分乘10再加上该次取余...直至余数为零

 1 public class Solution {
 2 
 3     public static void main(String[] args) {
 4         Solution sol = new Solution();
 5 //        System.out.println(t.reverse(-123));
 6 //        System.out.println(t.reverse(1000));
 7 //        System.out.println(t.reverse(123));
 8         System.out.println(sol.reverse(1324565656));
 9     }
10 
11     public int reverse(int x) {
12         // 单独处理MIN_VALUE,因为最大范围和最小范围绝对值差1
13         if (x == Integer.MIN_VALUE)
14             return 0;
15         int num = Math.abs(x);
16         int result = 0;
17         while (num != 0) {
18             // 判断是否超出MAX_VALUE
19             if (result > (Integer.MAX_VALUE - num % 10) / 10)
20                 return 0;
21             result = result * 10 + num % 10;
22             num = num / 10;
23         }
24         // 最后判断正负号
25         return x > 0 ? result : -result;
26     }
27 }

 

LeetCode:7. Reverse Integer(Easy)

原文:http://www.cnblogs.com/ErMengNJUniverser/p/8035028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!