【LeetCode】 7. Reverse Integer 整数反转(Easy)(JAVA)
题目地址: https://leetcode.com/problems/reverse-integer/
题目描述:
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: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
题目大意
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
解题方法
这道题很简单,只要不断反转就行,主要是考虑 int 超限的情况
res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && cur > 7)
res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && cur < -8)
class Solution {
public int reverse(int x) {
int res = 0;
int cur = 0;
while (x != 0) {
cur = x % 10;
if (res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && cur > 7)) return 0;
if (res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && cur < -8)) return 0;
res = res * 10 + cur;
x /= 10;
}
return res;
}
}
执行用时 :1 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :36.8 MB, 在所有 Java 提交中击败了5.05%的用户