1. 题目描述
2. 代码
1 class Solution: 2 def reverse(self, x: int) -> int: 3 if x == 0: 4 return 0 5 operation = 1 6 if x < 0: 7 operation = -1 8 sx = str(x) 9 if sx[0] == '-': 10 sx = sx[1:] 11 n = len(sx) 12 result = [] 13 for i in range(n-1,-1,-1): #倒叙的一种方式 14 result.append(sx[i]) 15 r = int(''.join(result)) 16 r *= operation 17 if r >= 2 ** 31 or r < (-2) ** 31: #判断是否溢出 18 r = 0 19 return r
思路: 输入整数先判断正负, 如果为负, 则截取负号之后的所有.
把输入转化为字符串, 获取长度. 倒叙添加进结果数组, 再int拼接成的字符串.
最后判断是否溢出, 溢出则返回0.
3. 整理
3.1 str()
1 s = 'RUNOOB' 2 >>> str(s) 3 'RUNOOB'
3.2 join()
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串.
语法:
1 str.join(sequence)
1 s1 = "-" 2 s2 = "" 3 seq = ("r", "u", "n", "o", "o", "b") # 字符串序列 4 print (s1.join( seq )) 5 print (s2.join( seq ))
1 r-u-n-o-o-b 2 runoob