leetcode:7. 整数反转
题目
给你一个 32 位的有符号整数 x
,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例:
输入:x = 123
输出:321
输入:x = -123
输出:-321
输入:x = 120
输出:21
输入:x = 0
输出:0
解答 & 代码
class Solution {
public:
int reverse(int x) {
int result = 0;
while(x != 0)
{
if(result < INT_MIN / 10 || result > INT_MAX / 10)
return 0;
int digit = x % 10;
result = result * 10 + digit;
x /= 10;
}
return result;
}
};
复杂度分析:
- 时间复杂度 O(
):翻转的次数即 x 十进制的位数
- 空间复杂度 O(1):
执行结果:
执行结果:通过
执行用时:4 ms, 在所有 C++ 提交中击败了 41.95% 的用户
内存消耗:5.7 MB, 在所有 C++ 提交中击败了 95.05% 的用户