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% 的用户
