【python每日一练】整数反转

给出一个 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 条评论)
   
验证码:

相关文章

推荐文章

'); })();