题目如下:

解题思路:本题和括号匹配问题有点像,用栈比较适合。一个元素入栈前,如果自己的状态是“start”,则直接入栈;如果是end则判断和栈顶的元素是否id相同并且状态是“start”,如果满足这两个条件,则说明这个元素和栈顶的元素是配对的,栈顶元素出栈。但是这个函数的的执行时间却不能简单的用end-start,因为这个函数里面可以还调用了其他函数,需要减去这些内部调用函数的执行时间,这里就需要引入一个新的变量来保存内部调用函数的执行时间。这个时间也很好求,函数完成配对后,栈顶元素出栈,只要把end-start累加到新的栈顶元素的内部调用函数执行时间即可。

代码如下:

class Solution(object):
def exclusiveTime(self, n, logs):
"""
:type n: int
:type logs: List[str]
:rtype: List[int]
"""
stack = []
res = [0] * n
for i in logs:
id,status,time = i.split(':')
if status == 'start' or len(stack) == 0 or stack[-1][0] != id:
stack.append([id,status,time,0])
else:
executetime = int(time) - int(stack[-1][2]) - int(stack[-1][3]) + 1
res[int(stack[-1][0])] += executetime
executerange = int(time) - int(stack[-1][2])
#ex = res[int(stack[-1][0])]
stack.pop(-1)
if len(stack) > 0:
stack[-1][3] += executerange + 1
return res

最新文章

  1. ASP.NET MVC——CodeFirst开发模式
  2. [LeetCode] Longest Valid Parentheses 最长有效括号
  3. 代码创建数据库_表--SqlServer数据库
  4. Codeforces Round #210 (Div. 2) C. Levko and Array Recovery
  5. C#泛型委托,匿名方法,匿名类
  6. POJ2735/Gym 100650E Reliable Nets dfs
  7. mysql概要(九)字符集和校对集
  8. python练习程序(c100经典例1)
  9. 关于在windows环境下配置xampp多站点问题
  10. storyBoard中的Segue跳转
  11. Mysql中的 的 Cascade ,NO ACTION ,Restrict ,SET NULL
  12. Java反射库中的安全漏洞在30个月后终于修复了(转)
  13. C#窗口实现最小化到系统托盘
  14. [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)
  15. hadoop in hue的搭建(基于cdh版本)
  16. C# 之 串口数据侦听的实现
  17. VIM编辑器常用命令(转)
  18. 02:saltstack-api使用详解
  19. Python:在windows下创建虚拟环境
  20. bootstrap下拉框的例子,提示Error: Bootstrap's JavaScript requires jQuery

热门文章

  1. sql server查询结果复制出来,没有换行(存进去的数据是换行的)
  2. MySQL5.7.21报错:[Err] 1055
  3. ubuntu 16.4下hadoop配置伪分布式时出现的坑
  4. 学院-成就学院:Academy of Achievement
  5. String中的CompareTo
  6. Python专题三字符串的基础知识
  7. jQuery防止中文乱码
  8. 工作笔记:phpstrom、docker、phpunit进行单元测试
  9. 20190823 尚硅谷MySQL核心技术
  10. JavaScript List