题目链接
https://leetcode-cn.com/problems/reverse-integer/
描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果
反转后整数溢出那么就返回 0。
示例
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
初始代码模板
class Solution {
public int reverse(int x) {
}
}
代码
蛮简单的一个题,可以试试多种方法处理一下溢出,推荐一下官方题解,题解下的评论也有很多方法:
https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-leetcode/
我直接用了一个中间量判断
class Solution {
public int reverse(int x) {
int num = 0;
int prev = 0;
while (x != 0) {
prev = num;
num = num * 10 + x % 10;
x /= 10;
if (num / 10 != prev) return 0;
}
return num;
}
}