Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123 Output: 321
Example 2:
Input: -123 Output: -321
Example 3:
Input: 120 Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
此问题不能利用while循环,不停地对x对10取余和相除,就可以不断地得出每一位的数字。
整型会溢出,导致返回结果会溢出。
class Solution {
public int reverse(int x) {
String str = String.valueOf(x);
String result = "0";
int k = 0;
if(str.startsWith("-")){
result = "-";
k = 1;
}
for(int i=str.length()-1;i>=k;i--){
result +=String.valueOf(str.charAt(i));
}
try{
return Integer.parseInt(result);
}catch(Exception e){
return 0;
}
}
}