Skip to content

Commit cc99683

Browse files
committed
exercism: complete plane-tickets (generate + assign + codes OK)
1 parent 085aeb1 commit cc99683

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

exercises/concept/plane-tickets/generators.py

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ def generate_seat_letters(number):
1414
1515
"""
1616

17-
pass
17+
seat_letters = ["A", "B", "C", "D"]
18+
for i in range(number):
19+
yield seat_letters[i % 4]
1820

1921

2022
def generate_seats(number):
@@ -34,7 +36,25 @@ def generate_seats(number):
3436
3537
"""
3638

37-
pass
39+
generated_seats = []
40+
seat_letters = ["A", "B", "C", "D"]
41+
row = 1
42+
43+
while len(generated_seats) < number:
44+
if row == 13:
45+
row += 1
46+
continue
47+
48+
for letter in seat_letters:
49+
seat = str(row) + letter
50+
generated_seats.append(seat)
51+
if len(generated_seats) == number:
52+
yield seat
53+
break
54+
else:
55+
yield seat
56+
57+
row += 1
3858

3959
def assign_seats(passengers):
4060
"""Assign seats to passengers.
@@ -46,7 +66,14 @@ def assign_seats(passengers):
4666
4767
"""
4868

49-
pass
69+
n = len(passengers)
70+
passengers_seats = {}
71+
seats = list(generate_seats(n))
72+
73+
for index in range(len(passengers)):
74+
passengers_seats[passengers[index]] = seats[index]
75+
76+
return passengers_seats
5077

5178
def generate_codes(seat_numbers, flight_id):
5279
"""Generate codes for a ticket.
@@ -57,4 +84,11 @@ def generate_codes(seat_numbers, flight_id):
5784
5885
"""
5986

60-
pass
87+
for seat_number in seat_numbers:
88+
_code = seat_number + flight_id
89+
remaining_len_to_complete = 12 - len(_code)
90+
91+
for n in range(remaining_len_to_complete):
92+
_code += "0"
93+
94+
yield _code

0 commit comments

Comments
 (0)