您的位置:首页 > 产品设计 > UI/UE

LeetCode - Reverse Integer - Frequent

2015-03-29 05:56 211 查看
https://leetcode.com/problems/reverse-integer/

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321
要注意的主要问题就是溢出。。。。
我用的JAVA,当输入x=Integer.MIN_VALUE时,Math.abs(x)居然不会起作用,即仍然是个负数。。。因此当x是最大整数和最小整数,就判断一定溢出,直接返回0。

然后从小到大依次取每一位的数,再合成成新数,注意颠倒后的数可能溢出,因此结果用long保存,然后再判断是否溢出了。

代码如下:

public int reverse(int x) {
if(x==Integer.MIN_VALUE || x == Integer.MAX_VALUE) return 0;
boolean positive = true;
if(x<0) positive = false;
int abs = Math.abs(x);
long val = 0;
while(abs>0){
int digit = abs%10;
val = val*10 + digit;
abs = abs/10;
}

if(!positive) val = -val;
if(val>Integer.MAX_VALUE || val<Integer.MIN_VALUE) return 0;
return (int)val;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: