From : www.LeetCode.com
Description
Reverse digits of an integer.
Example:
Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows. 2.
中文介绍
描述
给定一个整数,返回该整数反转后的结果,正负不变。
要注意的是,当给定的整数反转后,大小超出整数的取值范围时,应当返回0。
例子
例如给一个整数x = 123,应当返回321。
给一个整数x = -123,应当返回-321。
给一个整数x = 2147483647,应当返回0(因为反转后会超出取值范围)。
解决方案一
本方案的思想:
首先,记录下该整数的正负。
然后,将该整数转为字符串,并通过StringBuilder的reverse()方法,获取到该字符串的反转。
然后,将反转后的字符串再转回Int类型,此处需要考虑是否会超出取值范围,若超出范围则返回0。
最后,将得到的整数带上它的正负返回。
代码实现(JAVA)
class Solution {
public int reverse(int x) {
int flag = 0;
if(x > 0){
flag = 0; //表示为正
}else if (x < 0){
flag = 1; //表示为负
x = x * (-1); //将in转为正数
}else if (x == 0){
int t = 0;
return t; //若in为0,则不哟经反转,直接返回0
}
//将in转换为字符串,并反转该字符串
String str = new StringBuilder(((Integer)x).toString()).reverse().toString();
int t = 0;
//将字符串转为Integer,若转换失败(说明超出范围),则返回0
try{
t = Integer.parseInt(str);
}catch(Exception e){
return 0;
}
if(flag == 1){ //表示为负
return t * (-1); //将t转为正数
}
return t;
}
}