File tree Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Original file line number Diff line number Diff line change 7
7
class H2O (object ):
8
8
def __init__ (self ):
9
9
self .__l = threading .Lock ()
10
- self .__Hs = []
11
- self .__Os = []
10
+ self .__nH = 0
11
+ self .__nO = 0
12
+ self .__releaseHydrogen = None
13
+ self .__releaseOxygen = None
12
14
13
15
def hydrogen (self , releaseHydrogen ):
14
16
with self .__l :
15
- self .__Hs .append (releaseHydrogen )
17
+ self .__releaseHydrogen = releaseHydrogen
18
+ self .__nH += 1
16
19
self .__output ()
17
20
18
21
def oxygen (self , releaseOxygen ):
19
22
with self .__l :
20
- self .__Os .append (releaseOxygen )
23
+ self .__releaseOxygen = releaseOxygen
24
+ self .__nO += 1
21
25
self .__output ()
22
26
23
27
def __output (self ):
24
- while len (self .__Hs ) >= 2 and \
25
- len (self .__Os ) >= 1 :
26
- self .__Hs .pop ()()
27
- self .__Hs .pop ()()
28
- self .__Os .pop ()()
28
+ while self .__nH >= 2 and \
29
+ self .__nO >= 1 :
30
+ self .__nH -= 2
31
+ self .__nO -= 1
32
+ self .__releaseHydrogen ()
33
+ self .__releaseHydrogen ()
34
+ self .__releaseOxygen ()
29
35
30
36
31
37
# Time: O(n)
You can’t perform that action at this time.
0 commit comments