Skip to content

Commit 39a18b6

Browse files
authored
Redid Lists as Stacks and Queues - Exercise #17
2 parents 80cc022 + 3892d3f commit 39a18b6

File tree

5 files changed

+38
-56
lines changed

5 files changed

+38
-56
lines changed

Advanced/1.Stacks, Queues, Tuples and Sets/Lists as Stacks and Queues - Exercise/01. Reverse Numbers.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,5 @@ def count(self):
1818

1919
reverse_integers = Stack()
2020

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())]

Advanced/1.Stacks, Queues, Tuples and Sets/Lists as Stacks and Queues - Exercise/02. Stacked Queries.py

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,31 @@ def count(self):
1616
return len(self.stack)
1717

1818

19-
numbers_stack = Stack()
19+
stack = Stack()
20+
numbers_list = []
2021

21-
lines_of_input = int(input())
22+
lines = int(input())
2223

23-
min_max_num = []
24+
for queries in range(lines):
25+
query = input()
2426

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)
2731

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()
3136

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))
3640

37-
elif number[0] == '3':
38-
print(max(min_max_num))
41+
elif query == "4":
42+
if stack.count():
43+
print(min(numbers_list))
3944

40-
elif number[0] == '4':
41-
print(min(min_max_num))
4245

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())]))
Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,19 @@
11
from collections import deque
22

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
56

6-
print(max(orders_food_quantity))
7+
print(max(orders))
78

8-
orders_complete = True
9+
for order in range(len(orders)):
10+
if food_quantity - orders[0] >= 0:
11+
food_quantity -= orders.popleft()
912

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]))
2416
break
2517

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')

Advanced/1.Stacks, Queues, Tuples and Sets/Lists as Stacks and Queues - Exercise/05. Truck Tour.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
for attempt in range(number_petrol_pumps):
1010

1111
trunk = 0
12-
failed_attempt= False
12+
failed_attempt = False
1313

1414
for petrol, distance in pumps:
1515
trunk = trunk + petrol - distance
@@ -22,4 +22,4 @@
2222

2323
elif not failed_attempt:
2424
print(attempt)
25-
break
25+
break

Advanced/1.Stacks, Queues, Tuples and Sets/Lists as Stacks and Queues - Exercise/06. Balanced Parentheses.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ def count(self):
1616
return len(self.stack)
1717

1818

19-
opening_brackets = ['{', '(', '[']
20-
closing_brackets = ['}', ')', ']']
21-
2219
pairs = {
2320
'{': '}',
2421
'(': ')',
@@ -32,10 +29,10 @@ def count(self):
3229

3330
for index, bracket in enumerate(parentheses):
3431

35-
if bracket in opening_brackets:
32+
if bracket in pairs.keys():
3633
bracket_integers.push(index)
3734

38-
elif bracket in closing_brackets:
35+
elif bracket in pairs.values():
3936
if bracket_integers.count():
4037

4138
last_index = bracket_integers.peek()

0 commit comments

Comments
 (0)