首页 > 其他 > 详细

Baseball Game

时间:2017-09-25 00:18:57      阅读:256      评论:0      收藏:0      [点我收藏+]

    这道题为简单题

  题目:

    技术分享

 

  思路:

    利用栈,遍历列表ops,如果是数字就存入列表a,sum加上数字,如果是C,判断a是否还有数字,有就删除,如果是D,判断a是否还有数字,有就把num加上2倍a的最后一个数并将2倍之和的数添加到a中,如果是+,判断a是否还有两个数,有就将num加上那两个数,并将后面这两个数的和添加到a中。最后返回num

  代码:

 1 class Solution(object):
 2     def calPoints(self, ops):
 3         """
 4         :type ops: List[str]
 5         :rtype: int
 6         """
 7         a = []
 8         num = 0
 9         for i in ops:
10             if i == C:
11                 if a:
12                     num -= int(a.pop())
13             elif i == D:
14                 if a:
15                     num += 2 * int(a[len(a)-1])
16                     a.append(2 * int(a[len(a)-1]))
17             elif i == +:
18                 if len(a)>=2:
19                     num = num + int(a[len(a)-1]) + int(a[len(a)-2])
20                     a.append(int(a[len(a)-1]) + int(a[len(a)-2]))
21             else: 
22                 a.append(i)
23                 num += int(i)
24         return num

 

Baseball Game

原文:http://www.cnblogs.com/liuxinzhi/p/7589281.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!