leetcode逆序整数的输出

Reverse Integer:逆序整数
给定一个整数,输出他的逆序。
例如:输入123,输出321
输入-123,输出-321
输入120,输出21
考虑:当逆序输出的整数超出int范围时,返回0
我写的第一种方法判断很多,x>0的情况,然后余数等于0的情况,不等于0
X<0的情况,然后余数等于0的情况,不等于0
写的代码有很多重复代码,给人一种乱乱的感觉,不过可以解决就好了
代码如下:
class Solution(object):
def reverse(self, x):
“”"
:type x: int
:rtype: int
“”"
y=0
a = int(x)%10
b = int(x)/10
if int(x) > 0:
if a != 0:
x = str(x)
y = int(x[::-1])
else:
b = str(b)
y = int(b[::-1])
elif int(x)<0:
if a == 0:
b = str(b)
b = b[1:]
# b = b[1:len(b)-2:]
y = -int(b[::-1])
else:
x = str(x)
x = x[1:]
y = -int(x[::-1])
if y > 231-1 or y < -231:
y = 0
return y
还有简便办法,用一个数值来保存x的正负号,对x取绝对值逆序输出,加上之前保存的正负号,代码就很少了。
class Solution(object):
def reverse(self, x):
“”"
:type x: int
:rtype: int
“”"
sign = (x > 0) - (x < 0)

    ans = sign * int(str(abs(x))[::-1])
    
    if ans < 2**31 - 1 and ans > -2**31: 
        
        return ans 
    else:
        
        return 0

在这,我想总结一下关于字符串的切割问题:
a = “Hello”
b = “Python”
print “a + b 输出结果:”, a + b
print “a * 2 输出结果:”, a * 2
print “a[1] 输出结果:”, a[1]
print “a[1:4] 输出结果:”, a[1:4]
输出结果:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
其中,a:::,目标索引不包含最后一位。

你可能感兴趣的:(编程)