给出一个 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,[1:6]的值为%s,[1::2]的值为%s,[1::3]的值为%s,[:5:1]的值为%s,[::-1]的值为%s,[::-2]的值为%s,[:-1]的值为%s,[:2]的值为%s,[:]的值为%s,[::]的值为%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