题解:https://blog.csdn.net/five0918/article/details/52673653
题目:https://leetcode-cn.com/problems/reverse-integer/
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
思路:
- 先将有符号整数反转:
while(x!=0){ result = result * 10 + x%10; x = x /10; }
- 然后比较反转后的result是否溢出(int 32 位的有符号整数,则其数值范围为 [−231, 231 − 1])
class Solution {
public int reverse(int x) {
double result = 0.0;
while(x!=0){
result = result * 10 + x%10;
x = x /10;
}
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE){
result = 0.0;
}
return (int)result;
}
}
本文介绍了一种在不使用额外空间的情况下,对32位有符号整数进行位上数字反转的方法,并考虑了反转后可能产生的溢出问题。通过一个简单的while循环,每次迭代将整数的最后一位添加到结果变量中,然后检查结果是否超出32位有符号整数的范围。
1237

被折叠的 条评论
为什么被折叠?



