描述
给定一个32位的有符号整数num,将num中的数字部分反转,最后返回反转的结果
1.只反转数字部分,符号位部分不反转
2.反转后整数num超过 32 位的有符号整数的范围 [−231, 231 − 1] ,返回 0
3.假设本题不允许存储 64 位整数(有符号或无符号,即C++不能使用long long ,Java不能使用long等)
输入:-123
返回值:-321
解题思路
思路:要将数字倒序进行展示,要做的就是获取到每一位上面的单个数字。方法很简单,将目标数字%10即可。
比如:对于数字123,按照如上思路可以这样写:
123 % 10–>3
12 % 10 -->2
1 % 10–>1
class Solution {
public:
int reverse(int x) {
long result = 0;
while(x!=0){
result = result*10+x%10;
x=x/10;
}
//边界处理
if(result>INT_MAX||result<INT_MIN) return 0;
else return result;
}
};
时间复杂度:O(N), N为所给数字的位数。
空间复杂度:O(1) 。常数空间,存储若干常量。