Nu je vastgesteld hebt welke ticket ongeldige waarden bevatten, kan je deze tickets volledig weggooien. Gebruik de resterende tickets om de verschillende velden te identificeren.

Bepaal aan de hand van de intervallen met geldige waarden voor elke veld in welke volgorde de velden op de tickets staan. Deze volgorde is hetzelfde tussen alle tickets: als seat het derde veld is, dan is het het derde veld op elk ticket, inclusief je eigen ticket.

Stel dat je bijvoorbeeld de volgende gegevens verzameld hebt:

class: 0-1 or 4-19
row: 0-5 or 8-19
seat: 0-13 or 16-19

your ticket:
11,12,13

nearby tickets:
3,9,18
15,1,5
5,14,9

Op basis van de naburige tickets in bovenstaand voorbeeld, moet de eerste positie corresponderen met veld row, de tweede positie met het veld class en de derde positie met het veld seat. Daarmee kan je besluiten dat op jouw ticket het veldclass de waarde 12 heeft, veld row de waarde 11 en veld seat de waarde 13.

Opgave

Als je de verschillende velden geïdentificeerd hebt, zoek dan naar de zes velden op jouw ticket die beginnen met het woord departure. Wat krijg je als je de zes waarden uit die velden met elkaar vermenigvuldigd? Hiervoor ga je als volgt te werk:

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat het tekstbestand tickets.txt1 zich in de huidige directory bevindt.

>>> identification('tickets.txt', '^class$')
12
>>> identification('tickets.txt', '^row$')
11
>>> identification('tickets.txt', '^seat$')
13
>>> identification('tickets.txt', '^(class|seat)$')
156
>>> identification('tickets.txt', '^(class|row|seat)$')
1716