7.整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。(来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。)
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
搬运 @杀我队友 答案:
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x = str(x)
a = int(x[::-1]) if not x.startswith("-") else -int(x[1:][::-1])
return 0 if a < -2**31 or a > 2**31 -1 else a
自己编写:
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
signal = 1 if x >= 0 else -1
x_s = [int(x) for x in str(abs(x))]
x_c = [0 for i in range (len(x_s))]
for i in range(len(x_s)):
x_c[len(x_s)-i-1] = x_s[i]
x_m = int(''.join(str(i) for i in x_c)) * signal
if -2**31< x_m < 2**31-1:
return x_m
else:
return 0
搬运 @戈 Java答案:
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;
}