7. 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例
输入:x = 123
输出:321
题解分析
遍历 x,直到x/10 == 0。用长整型存储得到的x取余。最后长整型转为int型,看值是否相等。
代码展示
class Solution {
public:
int reverse(int x) {
long n = 0;
while(x != 0)
{
n = n*10 + x % 10;
x = x /10;
}
return (int)n==n ? (int)n : 0;
}
};
心得
对短整型是否溢出的考虑
空间时间复杂度
- 空间复杂度 1
- 时间复杂度 O(n)