introduzione
Non lo odi quando qualcuno carica un album che ti piace su YouTube, ma la descrizione contiene solo un elenco di brani ? Come questo:
1. Everything in Its Right Place - 4:11
2. Kid A - 4:44
3. The National Anthem - 5:50
4. How to Disappear Completely - 5:55
5. Treefingers - 3:42
6. Optimistic - 5:16
7. In Limbo - 3:31
8. Idioteque - 5:09
9. Morning Bell - 4:29
10. Motion Picture Soundtrack - 6:59
Ora non sai quando Morning Bell inizia a meno che tu non abbia un sacco di volte in testa! Di solito, una buona anima viene e lascia un utile calendario nella sezione dei commenti (temuti), che assomiglia a questo:
(0:00:00) Everything in Its Right Place
(0:04:11) Kid A
(0:08:55) The National Anthem
(0:14:45) How to Disappear Completely
(0:20:40) Treefingers
(0:24:22) Optimistic
(0:29:38) In Limbo
(0:33:09) Idioteque
(0:38:18) Morning Bell
(0:42:47) Motion Picture Soundtrack
specificazione
Il tuo compito è scrivere un programma o una funzione che accetta un elenco di tracce come input e una tabella dei tempi come output.
- È possibile scegliere di leggere l'input da STDIN, una stringa di argomenti o un elenco di righe di argomenti. Allo stesso modo, è possibile scegliere di stampare l'output su STDOUT, oppure restituire una stringa o restituire un elenco di righe. In caso contrario, fai tutto ciò che ha senso per la tua lingua.
Puoi presumere che ogni riga di input abbia il formato
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. Per i disabili con regex, ciò significa essenzialmente che si può presumere che ogni riga sia ben formattata (come sopra) e che i titoli dei brani siano costituiti solo da caratteri e spazi ASCII alfanumerici e non siano più lunghi di 100 byte.- La lunghezza di una traccia è sempre almeno
0:01
e non più di59:59
. - I numeri dei brani stanno aumentando l'ordine, a partire da
1
e contando fino a non più di99
. - La lunghezza totale di un album non è superiore a
9:59:59
.
Questo è code-golf , quindi vince il codice più breve (in byte).
Caso di prova
Il programma dovrebbe eseguire correttamente la conversione presentata nell'introduzione (Radiohead's Kid A ). Ecco un caso di test più ampio (Sufjan Stevens ' Illinois 1 ) con stringhe lunghe su cui dovrebbe funzionare anche il tuo programma:
1. Concerning the UFO Sighting Near Highland Illinois - 2:08
2. The Black Hawk War - 2:14
3. Come On Feel the Illinoise - 6:45
4. John Wayne Gacy Jr - 3:19
5. Jacksonville - 5:24
6. A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons - 0:47
7. Decatur or Round of Applause for Your Stepmother - 3:03
8. One Last Whoo Hoo for the Pullman - 0:06
9. Chicago - 6:04
10. Casimir Pulaski Day - 5:53
11. To the Workers of the Rock River Valley Region - 1:40
12. The Man of Metropolis Steals Our Hearts - 6:17
13. Prairie Fire That Wanders About - 2:11
14. A Conjunction of Drones Simulating the Way - 0:19
15. The Predatory Wasp of the Palisades Is Out to Get Us - 5:23
16. They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh - 5:09
17. Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell - 0:40
18. In This Temple as in the Hearts of Man for Whom He Saved the Earth - 0:35
19. The Seers Tower - 3:53
20. The Tallest Man the Broadest Shoulders - 7:02
21. Riffs and Variations on a Single Note - 0:46
22. Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run - 4:21
L'output corretto è:
(0:00:00) Concerning the UFO Sighting Near Highland Illinois
(0:02:08) The Black Hawk War
(0:04:22) Come On Feel the Illinoise
(0:11:07) John Wayne Gacy Jr
(0:14:26) Jacksonville
(0:19:50) A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons
(0:20:37) Decatur or Round of Applause for Your Stepmother
(0:23:40) One Last Whoo Hoo for the Pullman
(0:23:46) Chicago
(0:29:50) Casimir Pulaski Day
(0:35:43) To the Workers of the Rock River Valley Region
(0:37:23) The Man of Metropolis Steals Our Hearts
(0:43:40) Prairie Fire That Wanders About
(0:45:51) A Conjunction of Drones Simulating the Way
(0:46:10) The Predatory Wasp of the Palisades Is Out to Get Us
(0:51:33) They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh
(0:56:42) Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell
(0:57:22) In This Temple as in the Hearts of Man for Whom He Saved the Earth
(0:57:57) The Seers Tower
(1:01:50) The Tallest Man the Broadest Shoulders
(1:08:52) Riffs and Variations on a Single Note
(1:09:38) Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run
Classifica
Affinché il tuo punteggio appaia sul tabellone, dovrebbe essere in questo formato:
# Language, Bytes
1. Chiedo scusa a Sufjan, i cui incredibili nomi delle tracce ho dovuto manipolare un po 'per adattarli al formato semplice a cui questo problema è limitato.
(h:mm:ss) Track Name
, seguito immediatamente da una nuova riga.