Prima della scoperta di impronte digitali e test del DNA, la polizia britannica ha utilizzato un sistema antropometrico per identificare i recidivi. Alcune parti dei corpi dei criminali sono state misurate e archiviate in archivi - si presume che queste parti del corpo non cambino di dimensioni dopo l'età adulta. Questo sistema era noto come bertillonnage .
Lo schema seguente mostra un sistema di archiviazione utilizzato dalla polizia per accedere rapidamente a questi record.
Schema 1: un sistema di archiviazione con cassetti numerati.
Nota: se non riesci a vedere l'immagine, prova lo specchio imgur o compila da solo .
Il classificatore è composto da 81 cassetti numerati. Ogni cassetto contiene carte e ogni carta ha misure di parti particolari del corpo di un criminale:
- La lunghezza della loro testa (
H) - La larghezza della loro testa (
B) - La larghezza dell'orecchio destro (
E) - La lunghezza del dito indice (
F)
Ogni misurazione è classificata come piccola, media o grande.
Ad esempio, il cassetto 56 contiene carte con le seguenti caratteristiche: piccolo H, grande B, E medio e piccolo F. Questo può essere notata mediante le lettere S, Me Lin luogo di piccole, medie e grandi dimensioni:
SH,LB,ME,SF
Si noti che la lettera delle dimensioni inizia per prima, quindi quale sia la misurazione. Inoltre, un punto esclamativo !può essere posizionato di fronte per causare un negativo:
!SH,LB,!ME,SF
Questo indica le carte che hanno le seguenti caratteristiche: non piccola H, grande B, non media E e piccola F. Ci sono quattro cassetti che contengono carte con queste caratteristiche: 58, 60, 61 e 63.
Il tuo compito è quello di scrivere un programma che, quando viene data una stringa che noti alcune caratteristiche, produce tutti i cassetti che contengono carte con quelle caratteristiche. Se non ci sono cassetti che contengono carte con le caratteristiche indicate, output 0.
Ecco alcuni input e output di esempio.
- Ingresso:
SH,LB,ME,SF
Uscita:56 - Ingresso:
!SH,LB,!ME,SF
Uscita:58,60,61,63 - Ingresso:
SB,!MF,!LF
Uscita:1,2,3,4,5,6,7,8,9 - Ingresso:
MH,!MH
Uscita:0
Questo è il golf del codice, quindi vince l'ingresso più breve. Poni domande nei commenti se le specifiche non sono chiare.