Fork me on GitHub

LeetCode 7 Reverse Integer(反转数字)

题目来源:https://leetcode.com/problems/reverse-integer/

 

Reverse digits of an integer.

 

Example1: x = 123, return 321
Example2: x = -123, return -321

解题思路:

其实这道题看起来非常简单,要实现也是几行代码的事。但是有个小问题容易被忽略,就是边界问题。什么意思呢?如果我们输入的整数超出了int的表达范围,这个问题要怎么解决呢?
用比int更大的数据类型存储我们转换后的结果,然后与int的边界比较,超出了边界则返回0。
Java实现:
 1 public class Solution {
 2     public int reverse(int x) {
 3         long reverse = 0;
 4         
 5         while(x != 0){
 6             reverse = reverse * 10 + x % 10;
 7             if(reverse > Integer.MAX_VALUE || reverse < Integer.MIN_VALUE)
 8                 return 0;
 9             x = x / 10;
10         }
11         return (int)reverse;
12     }
13 }

 

 

posted @ 2015-12-25 19:51  伊甸一点  阅读(279)  评论(0编辑  收藏  举报