给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
int reverse(int x) {
bool isPositive = 1;
long ret = 0;
long x_rel = (long)x;
int result = 0;
int tail_number = 0;
if(x_rel < 0)
{
isPositive = 0;
x_rel = 0 - x_rel;
}
while(x_rel)
{
ret = ret*10 + x_rel%10;
x_rel/= 10;
}
if(!isPositive)
{
ret = 0 - ret;
}
if((ret < -pow(2, 31)) || (ret > pow(2, 31) - 1))
{
return 0;
}
else
{
result = (int)ret;
}
return result;
}
};
执行结果:
通过
显示详情
执行用时 :4 ms, 在所有 C++ 提交中击败了80.59%的用户
内存消耗 :8.3 MB, 在所有 C++ 提交中击败了78.27%的用户