Vor der Entdeckung von Fingerabdrücken und DNA-Tests verwendete die britische Polizei ein anthropometrisches System, um Wiederholungstäter zu identifizieren. Bestimmte Körperteile von Kriminellen wurden vermessen und in Aufzeichnungen gespeichert. Es wurde angenommen, dass sich diese Körperteile nach dem Erwachsenenalter nicht in ihrer Größe verändert haben. Dieses System wurde als Bertillonnage bezeichnet .
Das folgende Diagramm zeigt ein Ablagesystem, mit dem die Polizei schnell auf diese Aufzeichnungen zugreifen kann.
Abbildung 1: Ein Ablagesystem mit nummerierten Schubladen.
Hinweis: Wenn Sie das Bild nicht sehen können, versuchen Sie es mit dem Imgur Mirror oder kompilieren Sie es selbst .
Der Aktenschrank besteht aus 81 nummerierten Schubladen. Jede Schublade enthält Karten, und jede Karte enthält Maße für bestimmte Körperteile eines Kriminellen:
- Die Länge ihres Kopfes (
H) - Die Breite ihres Kopfes (
B) - Die Breite ihres rechten Ohrs (
E) - Die Länge ihres Zeigefingers (
F)
Jede Messung wird als klein, mittel oder groß klassifiziert.
Zum Beispiel enthält Schublade 56 Karten mit den folgenden Eigenschaften: H klein, groß B, mittlere E und F. Dieser kleine notiert werden kann mit den Buchstaben S, M, und Lanstelle von kleinen, mittleren und großen:
SH,LB,ME,SF
Beachten Sie, dass zuerst der Größenbuchstabe und dann das Maß angegeben wird. Zusätzlich kann ein Ausrufezeichen !vorangestellt werden, um ein Negativ hervorzurufen:
!SH,LB,!ME,SF
Dies weist auf Karten mit den folgenden Merkmalen hin: nicht klein H, groß B, nicht mittel E und klein F. Es gibt vier Fächer, die Karten mit diesen Merkmalen enthalten - 58, 60, 61 und 63.
Ihre Aufgabe ist es, ein Programm zu schreiben, das, wenn eine Zeichenfolge mit bestimmten Merkmalen angegeben wird, alle Schubladen ausgibt, die Karten mit diesen Merkmalen enthalten. Wenn es keine Schubladen gibt, die Karten mit den angegebenen Merkmalen enthalten, wird ausgegeben 0.
Hier sind einige Beispiele für Ein- und Ausgänge.
- Eingabe:
SH,LB,ME,SF
Ausgabe:56 - Eingabe:
!SH,LB,!ME,SF
Ausgabe:58,60,61,63 - Eingabe:
SB,!MF,!LF
Ausgabe:1,2,3,4,5,6,7,8,9 - Eingabe:
MH,!MH
Ausgabe:0
Dies ist Codegolf, also gewinnt der kürzeste Eintrag. Stellen Sie Fragen in den Kommentaren, wenn die Spezifikation nicht klar ist.