Given a signed 32-bit integer x
, return x
with its digits reversed. If reversing x
causes the value to go outside the signed 32-bit integer range [-2<sup>31</sup>, 2<sup>31</sup> - 1]
, then return 0
.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
**Input:** x = 123 **Output:** 321
Example 2:
**Input:** x = -123 **Output:** -321
Example 3:
**Input:** x = 120 **Output:** 21
Example 4:
**Input:** x = 0 **Output:** 0
Constraints:
-2<sup>31</sup> <= x <= 2<sup>31</sup> - 1
题目大意:
反转整数中的数字。
数学法解题思路:
用数学方法每位取余,余数左移。另一种方法是转成字符串然后用字符串反转的方法。
与Java的区别:
- 不需要定义long,因为Python3所有int默认都是long
- 反转str一行完成,非常简洁
注意事项:
- 负值
- 溢出
Python代码:
1 | def reverse(self, x: int) -> int: |
字符串法解题思路:
转为字符串,然后反转。
1 | def reverse(self, x: int) -> int: |
算法分析:
- 时间复杂度为
O(n)
,空间复杂度O(1)
。 - 时间复杂度为
O(n)
,空间复杂度O(n)
。