反转整数 reverse integer
题目
给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [− 2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
代码模板
class Solution {
public int reverse(int x) {
}
}
分析
看到这个题目,首先我们能想到的就是这个数%10,就能得到最后一位,然后再把这个最后一位*10,到下次循环的时候再加上下一次的最后一位。当然要注意的就是,在反转的过程中,判断Integer.MAX_VALUE/10与Integer.MIN_VALUE,如果超过这个值,就需要做限制判断,不让它走到下一个循环。
解答
class Solution {
public int reverse(int x) {
int result = 0;
while(x!=0){
int temp = result * 10 + x%10;
x = x / 10;
if (result > Integer.MAX_VALUE/10||resu