给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:输入: 123
输出: 321
示例 2:输入: -123
输出: -321
示例 3:输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class SolutionReverse:
def reverse(self,x):
if x in range(-2**31,0):
x=-int(str(x)[1:][::-1])
elif x in range(0,2**31):
x=int(str(x)[::-1])
else:
x=0
return x
if __name__=='__main__':
target = -120
s=SolutionReverse()
print(s.reverse(target))
涉及到python中切片的知识点
target = '012345678'
# 第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束,第三个数(冒号之后)表示切片间隔数
p_1=target[1:6:1]
# 开始位置是包含在序列切片中的,而结束位置被排斥在切片外
p_1_1=target[1:6]
# 如果没有指定第二个数,则Python会停止在序列尾
p_2=target[1::2]
p_2_1=target[1::3]
# 如果不指定第一个数,Python就从序列首开始
p_3=target[:5:1]
# 负数用在从序列尾开始计算的位置
p_4=target[::-1]
p_4_1=target[::-2]
p_5=target[:-1]
p_6=target[:2]
p_7=target[:]
p_8=target[::]
print("原数据的值为%s"%target)
print("[1:6:1]的值为%s,\n[1:6]的值为%s,\n[1::2]的值为%s,\n[1::3]的值为%s,\n[:5:1]的值为%s,\n[::-1]的值为%s,\n[::-2]的值为%s,\n[:-1]的值为%s,\n[:2]的值为%s,\n[:]的值为%s,\n[::]的值为%s"\
%(p_1,p_1_1,p_2,p_2_1,p_3,p_4,p_4_1,p_5,p_6,p_7,p_8))
运行结果为:原数据的值为012345678
[1:6:1]的值为12345,
[1:6]的值为12345,
[1::2]的值为1357,
[1::3]的值为147,
[:5:1]的值为01234,
[::-1]的值为876543210,
[::-2]的值为86420,
[:-1]的值为01234567,
[:2]的值为01,
[:]的值为012345678,
[::]的值为012345678
留言与评论(共有 0 条评论) |