题目

范例
输入:x = 123
输出:321
输入:x = -123
输出:-321
解析
初步想法以为这是一个简单的题目,只需要放到while循环里进行/10和%10操作,然后根据表达式相加可以得到结果。可是这会遇到一个问题,即数字再反转过程中会出现溢出的情况需要加以判断。
class Solution {
public:
int reverse(int x) {
int rev = 0;
while (x != 0)
{
int pop = x % 10;
x /= 10;
// 考虑边缘情况
// 正数是 2147483647
if ((rev > INT_MAX/10) || (rev == INT_MAX/10 && pop > 7))
{
return 0;
}
// 负数是 -2147483648
else if ((rev < INT_MIN/10) || rev == INT_MIN/10 && pop < -8)
{
return 0;
}
rev = rev * 10 + pop;
}
return rev;
}
};
本文探讨了一个编程挑战,如何反转整数避免溢出,通过实例和代码展示如何在C++和Python中处理边界条件,提供了一种有效且健壮的解决方案。
&spm=1001.2101.3001.5002&articleId=118692148&d=1&t=3&u=c273a5115b334f1fa9ea3b5404040134)
5390

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



