【leetcode】636. Exclusive Time of Functions
2024-09-05 22:24:08
题目如下:
解题思路:本题和括号匹配问题有点像,用栈比较适合。一个元素入栈前,如果自己的状态是“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
最新文章
- ASP.NET MVC——CodeFirst开发模式
- [LeetCode] Longest Valid Parentheses 最长有效括号
- 代码创建数据库_表--SqlServer数据库
- Codeforces Round #210 (Div. 2) C. Levko and Array Recovery
- C#泛型委托,匿名方法,匿名类
- POJ2735/Gym 100650E	 Reliable Nets dfs
- mysql概要(九)字符集和校对集
- python练习程序(c100经典例1)
- 关于在windows环境下配置xampp多站点问题
- storyBoard中的Segue跳转
- Mysql中的 的 Cascade ,NO ACTION ,Restrict ,SET NULL
- Java反射库中的安全漏洞在30个月后终于修复了(转)
- C#窗口实现最小化到系统托盘
- [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)
- hadoop in hue的搭建(基于cdh版本)
- C# 之 串口数据侦听的实现
- VIM编辑器常用命令(转)
- 02:saltstack-api使用详解
- Python:在windows下创建虚拟环境
- bootstrap下拉框的例子,提示Error: Bootstrap's JavaScript requires jQuery