给你一个整数 x ,输出将 x 中的除去符号位的数字部分,翻转后的结果。例如输入为-123,输出结果为-321 如果反转后整数超过 32 位的有符号整数的范围 [−2 31 ,2 31 −1] ,那么输出0
时间: 2023-05-10 08:55:35 浏览: 58
可以使用以下代码实现:
```python
def reverse(x: int) -> int:
if x == 0:
return 0
elif x < 0:
x = -x
sign = -1
else:
sign = 1
res = 0
while x > 0:
res = res * 10 + x % 10
x //= 10
res *= sign
if res < -2**31 or res > 2**31 - 1:
return 0
else:
return res
```
对于输入为-123的情况,输出结果为-321。如果反转后整数超过32位的有符号整数的范围[-2^31, 2^31-1],则输出0。
相关问题
给你一个 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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
题目描述:
给定一个 32 位的有符号整数 x ,要求将 x 中的数字部分反转后返回结果。
解题思路:
1. 首先判断 x 是否为负数,如果是负数,则将其转化为正数,并标记一下。
2. 将 x 转化为字符串,然后将字符串反转。
3. 将反转后的字符串转化为整数,如果之前标记了负数,则将其转化为负数。
4. 判断反转后的整数是否在 32 位有符号整数的范围内,如果不在,则返回 。
代码实现:
class Solution {
public:
int reverse(int x) {
bool flag = false;
if (x < ) {
flag = true;
x = -x;
}
string s = to_string(x);
reverse(s.begin(), s.end());
long long res = stoll(s);
if (flag) {
res = -res;
}
if (res < INT_MIN || res > INT_MAX) {
return ;
}
return res;
}
};