LeetCode 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]
。请根据这个假设,如果反转后整数溢出那么就返回 0。
public static int reverse(int x) {
int rev = 0;
while(x != 0) {
int pop = x % 10; // 取得余数
x /= 10; //进行去位
//判断是否正溢出
if(rev > Integer.MAX_VALUE / 10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) {
return 0;
}
//判断是否负溢出
if(rev < Integer.MIN_VALUE / 10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) {
return 0;
}
rev = rev * 10 + pop; //求出反转整数
}
return rev;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: LeetCode 无重复字符的最长子串
下一篇: SQL 查询来实现分数排名
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论