LeetCode07-整数反转
6. Z 字形变换:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
- -2^31 <= x <= 2^31 - 1
解题思路1:
由于无法存储64位整数,所以比较的时候只能和INT_MAX||INT_MIN少一位比较,然后判断再加上一位数字是否超过限制,超过则返回0
class Solution {
public:
int reverse(int x) {
int ans=0;
while(x!=0){
int tmp=x%10;
if(ans>INT_MAX/10||(ans==INT_MAX/10&&tmp>7))
return 0;
if(ans<INT_MIN/10||(ans==INT_MIN/10&&tmp<-8))
return 0;
ans=ans*10+tmp;
x/=10;
}
return ans;
}
};
本文介绍LeetCode上的整数反转题目,提供了一个C++实现的解决方案,并详细阐述了解题思路,包括如何处理32位有符号整数的边界情况。
463

被折叠的 条评论
为什么被折叠?



