Given a 32-bit signed integer, reverse digits of an integer.
给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
1 2 |
<strong>输入:</strong> 123 <strong>输出:</strong> 321 |
示例 2:
1 2 |
<strong>输入:</strong> -123 <strong>输出:</strong> -321 |
示例 3:
1 2 |
<strong>输入:</strong> 120 <strong>输出:</strong> 21 |
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# -*- coding: UTF-8 -*- def reverse(x): ''' type x: int rtype: int 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 ''' if x < 0: re_str_x = str(x)[1:][::-1] re_int_x = -int(re_str_x) else: re_str_x = str(x)[::-1] re_int_x = int(re_str_x) if abs(re_int_x) in range(-2 ** 31, 2 ** 31-1): return re_int_x return 0 print(reverse(int(input('Pls input a number:')))) |
输出结果
1 2 |
Pls input a number:123 321 |
1 2 |
Pls input a number:-123 -321 |
1 2 |
Pls input a number:1234567899 0 |