LeetCode python-7.整数翻转
先看题目:
(题目来力扣网站)
思路:
将字符串转换为列表,翻转列表后,先判断第一项是否为0,为零则删除res最后一个数字,不为零则不执行删除操作。将列表转化为字符串,用“ ”操作可将列表中的数连接为字符串,判断最后一项是不是负号,是负号,则在ans前添加负号,不是负号,则在ans后面加上res的最后一位。最后判断ans在不在32位范围之内。
在pycharm中运行的代码及结果:
class Solution:
def reverse(self, x):
res = list(str(x))# 转为列表
res.reverse()
if res[0]==0: # 判断 第一项是否为0
res.popleft()
ans = ''.join(res[:-1]) # 转为str
if res[-1] == '-': # 判断最后一项
ans = '-'+ans
else:
ans += res[-1]
ans = int(ans)# 转为 int
if -2**31 <=ans<= 2**31-1:
return ans
else:
return 0
p = Solution()
print(p.reverse(123))
print(p.reverse(-123))
print(p.reverse(120))
print(p.reverse(-120))
在LeetCode中运行的结果:
收获:
①
list.pop() 是列表的常用操作,移除并返回列表中指定索引对应元素。括号内不填时则默认对应列表的最后一个元素。
nums = [1,2,3,4,5]
result = nums.pop()
print (result,nums)
popleft请参考下面链接:python—pop与popleft
②
ans = ‘’.join(res[:-1])
''用于连接列表里的元素
list = ["It","is","a","dog","."]
ans = ''.join(list)#中间没有空格
print(ans)
list = ["It","is","a","dog","."]
ans = ' '.join(list)#中间有一个空格
print(ans)