File tree Expand file tree Collapse file tree 5 files changed +38
-56
lines changed
Advanced/1.Stacks, Queues, Tuples and Sets/Lists as Stacks and Queues - Exercise Expand file tree Collapse file tree 5 files changed +38
-56
lines changed Original file line number Diff line number Diff line change @@ -18,10 +18,5 @@ def count(self):
18
18
19
19
reverse_integers = Stack ()
20
20
21
- integers = [int (num ) for num in input ().split ()]
22
-
23
- for number in integers :
24
- reverse_integers .push (number )
25
-
26
- while reverse_integers .count ():
27
- print (reverse_integers .pop (), end = ' ' )
21
+ [reverse_integers .push (int (num )) for num in input ().split ()]
22
+ [print (reverse_integers .pop (), end = " " ) for _ in range (reverse_integers .count ())]
Original file line number Diff line number Diff line change @@ -16,30 +16,31 @@ def count(self):
16
16
return len (self .stack )
17
17
18
18
19
- numbers_stack = Stack ()
19
+ stack = Stack ()
20
+ numbers_list = []
20
21
21
- lines_of_input = int (input ())
22
+ lines = int (input ())
22
23
23
- min_max_num = []
24
+ for queries in range (lines ):
25
+ query = input ()
24
26
25
- for num in range (lines_of_input ):
26
- number = input ().split ()
27
+ if query .startswith ("1" ):
28
+ num = int (query .split ()[1 ])
29
+ stack .push (num )
30
+ numbers_list .append (num )
27
31
28
- if number [0 ] == '1' :
29
- numbers_stack .push (number [1 ])
30
- min_max_num .append (int (number [1 ]))
32
+ elif query == "2" :
33
+ if stack .count ():
34
+ stack .pop ()
35
+ numbers_list .pop ()
31
36
32
- elif numbers_stack .count ():
33
- if number [0 ] == '2' :
34
- numbers_stack .pop ()
35
- min_max_num .pop ()
37
+ elif query == "3" :
38
+ if stack .count ():
39
+ print (max (numbers_list ))
36
40
37
- elif number [0 ] == '3' :
38
- print (max (min_max_num ))
41
+ elif query == "4" :
42
+ if stack .count ():
43
+ print (min (numbers_list ))
39
44
40
- elif number [0 ] == '4' :
41
- print (min (min_max_num ))
42
45
43
- numbers = [str (num ) for num in min_max_num [::- 1 ]]
44
-
45
- print (', ' .join (numbers ))
46
+ print (", " .join ([str (stack .pop ()) for _ in range (stack .count ())]))
Original file line number Diff line number Diff line change 1
1
from collections import deque
2
2
3
- quantity_food = int (input ())
4
- orders_food_quantity = deque ([int (num ) for num in input ().split ()])
3
+ food_quantity = int (input ())
4
+ orders = deque (map (int , input ().split ()))
5
+ too_many_orders = False
5
6
6
- print (max (orders_food_quantity ))
7
+ print (max (orders ))
7
8
8
- orders_complete = True
9
+ for order in range (len (orders )):
10
+ if food_quantity - orders [0 ] >= 0 :
11
+ food_quantity -= orders .popleft ()
9
12
10
- index = - 1
11
-
12
- while orders_food_quantity :
13
-
14
- index += 1
15
- order = orders_food_quantity [index ]
16
-
17
- if order <= quantity_food :
18
- index -= 1
19
- quantity_food -= order
20
- orders_food_quantity .popleft ()
21
-
22
- elif order > quantity_food :
23
- orders_complete = False
13
+ else :
14
+ too_many_orders = True
15
+ print ("Orders left:" , ' ' .join ([str (order ) for order in orders ]))
24
16
break
25
17
26
- if orders_complete :
27
- print ("Orders complete" )
28
- elif not orders_complete :
29
- uncompleted_orders = [str (num ) for num in orders_food_quantity ]
30
- print (f"Orders left: { ' ' .join (uncompleted_orders )} " )
18
+ if not too_many_orders :
19
+ print ('Orders complete' )
Original file line number Diff line number Diff line change 9
9
for attempt in range (number_petrol_pumps ):
10
10
11
11
trunk = 0
12
- failed_attempt = False
12
+ failed_attempt = False
13
13
14
14
for petrol , distance in pumps :
15
15
trunk = trunk + petrol - distance
22
22
23
23
elif not failed_attempt :
24
24
print (attempt )
25
- break
25
+ break
Original file line number Diff line number Diff line change @@ -16,9 +16,6 @@ def count(self):
16
16
return len (self .stack )
17
17
18
18
19
- opening_brackets = ['{' , '(' , '[' ]
20
- closing_brackets = ['}' , ')' , ']' ]
21
-
22
19
pairs = {
23
20
'{' : '}' ,
24
21
'(' : ')' ,
@@ -32,10 +29,10 @@ def count(self):
32
29
33
30
for index , bracket in enumerate (parentheses ):
34
31
35
- if bracket in opening_brackets :
32
+ if bracket in pairs . keys () :
36
33
bracket_integers .push (index )
37
34
38
- elif bracket in closing_brackets :
35
+ elif bracket in pairs . values () :
39
36
if bracket_integers .count ():
40
37
41
38
last_index = bracket_integers .peek ()
You can’t perform that action at this time.
0 commit comments