@@ -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
2022def 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
3959def 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
5178def 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