1234567891011121314151617181920212223 |
- func exclusiveTime(n int, logs []string) []int {
- res := make([]int, n)
- if len(logs) == 0 {
- return res
- }
- pre := -1 // All func start from 0.
- st := []int{0}
- for i := range logs {
- log := strings.Split(logs[i], ":")
- id, _ := strconv.Atoi(log[0])
- cur, _ := strconv.Atoi(log[2])
- res[id]++
- if log[1] == "start" {
- res[st[len(st)-1]] += cur - pre - 1
- st = append(st, id)
- } else {
- res[id] += cur - pre - 1
- st = st[:len(st)-1]
- }
- pre = cur
- }
- return res
- }
|