package Ġio . undefined Ċ Ċ import Ġio . utils . run Tests Ċ import Ġjava . util .* ĊĊ Ċ // Ġhttps :// leetcode . com / problems / exclusive - time - of - functions / Ċ class ĠEx clusive Time Of Functions Ġ{ ĊĊĠ Ġ// Ġhttps :// leetcode . com / problems / exclusive - time - of - functions / dis cuss / 1 0 5 0 6 2 / Java - Stack - Solution - O ( n )- Time - O ( n )- Space ĊĠ Ġfun Ġexecute ( n : ĠInt , Ġlogs : ĠList < String >): ĠInt Array Ġ{ ĊĠĠĠ Ġval Ġlogs Triple Ġ= Ġlogs . to Triple () ĊĠĠĠ Ġval Ġresult Ġ= ĠInt Array ( n ) ĊĠĠĠ Ġval Ġstack Ġ= ĠLinkedList < Int >() ĊĠĠĠ Ġ// Ġstart Interval Ġmeans Ġthe Ġstart Ġof Ġthe Ġinterval ĊĠĠĠ Ġvar Ġstart Interval Ġ= Ġ 0 ĊĠĠĠ Ġlogs Triple . forEach Ġ{ Ġ( id , Ġaction , Ġtimestamp ) Ġ-> ĊĠĠĠĠĠ Ġif Ġ( stack . isNotEmpty ()) Ġresult [ stack . peek ()] Ġ+= Ġtimestamp Ġ- Ġstart Interval ĊĠĠĠĠĠ Ġstart Interval Ġ= Ġtimestamp ĊĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġtimestamp Ġis Ġthe Ġstart Ġof Ġthe Ġnext Ġinterval , Ġdoesn 't Ġbelong Ġto Ġthe Ġcurrent Ġinterval . ĊĠĠĠĠĠĠĠ Ġ" start " Ġ-> Ġstack . push ( id ) ĊĠĠĠĠĠĠĠ Ġ// Ġtimestamp Ġis Ġthe Ġend Ġof Ġthe Ġcurrent Ġinterval , Ġbelong Ġto Ġthe Ġcurrent Ġinterval . ĊĠĠĠĠĠĠĠ Ġ// ĠThat 's Ġwhy Ġresult [ stack . pop ()] ++ Ġand Ġstart Interval ++ ĊĠĠĠĠĠĠĠ Ġ" end " Ġ-> Ġresult [ stack . pop ()] ++. also Ġ{ Ġstart Interval ++ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠList < String >. to Triple (): ĠList < Triple < Int , ĠString , ĠInt >> Ġ= ĊĠĠĠĠĠ Ġthis . map Ġ{ Ġit . split (': '). let Ġ{ Ġ( id , Ġaction , Ġtimestamp ) Ġ-> ĠTrip le ( id . toInt (), Ġaction , Ġtimestamp . toInt ()) Ġ} Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠ Ġrun Tests ( listOf ( ĊĠĠĠĠĠ ĠTrip le ( 2 , ĠlistOf (" 0 : start : 0 ", Ġ" 1 : start : 2 ", Ġ" 1 : end : 5 ", Ġ" 0 : end : 6 "), ĠlistOf ( 3 , Ġ 4 )), ĊĠĠĠĠĠ ĠTrip le ( 1 , ĠlistOf (" 0 : start : 0 ", Ġ" 0 : start : 1 ", Ġ" 0 : start : 2 ", Ġ" 0 : end : 3 ", Ġ" 0 : end : 4 ", Ġ" 0 : end : 5 "), ĠlistOf ( 6 )) ĊĠ Ġ)) Ġ{ Ġ( n , Ġlogs , Ġvalue ) Ġ-> Ġvalue Ġto ĠEx clusive Time Of Functions (). execute ( n , Ġlogs ). toList () Ġ} Ċ }