您的位置:首页 > 编程语言 > Java开发

Reverse Integer 解题报告

2015-06-03 01:31 691 查看
Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

原题出处:https://leetcode.com/problems/reverse-integer/
解题思路:

如果输入”100”,”10000”,反转之后输出时应考虑前导‘0’;

输入溢出时时以及反转输出时溢出直接返回‘0’;

本题关键是如和处理溢出

/**
*
* @author ganyee Reverse digits of an integer. Example1: x = 123, return 321
*         Example2: x = -123, return -321
*/
public class ReverseInteger {

public static void main(String[] args) {
// TODO Auto-generated method stub
// System.out.println(reverse(10000000));
// System.out.println(reverse(1534236469));
System.out.println(reverse(-2147483648));
System.out.println(reverse(9646351));
}

public static int reverse(int x) {
int flag = 0;
long newX = x;

//输入时判断是否溢出
if (newX < 0) {
newX = Math.abs(newX);
flag = 1;
} else {
newX = x;
}
if (newX == 0 || newX > Integer.MAX_VALUE)
return 0;

String str = Long.toString(newX);
StringBuffer stringBuffer = new StringBuffer(str);
str = stringBuffer.reverse().toString();

//输出是判断是否发生溢出
if (Long.parseLong(str) > Integer.MAX_VALUE)
return 0;
System.out.println(str);
while (str.startsWith("0")) {
str = str.substring(1);
}

if (flag == 1) {

return (0 - Integer.parseInt(str));
} else {
return Integer.parseInt(str);
}
}

}


转载请注明出处,谢谢!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息