Einführung
Hassen Sie es nicht, wenn jemand ein Album, das Sie mögen, auf YouTube hochlädt, aber die Beschreibung nur eine Titelliste enthält ? So was:
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
Jetzt wissen Sie nicht, wann die Morgenglocke beginnt, es sei denn, Sie haben ein paar Male im Kopf! Normalerweise werden einige gute Seele kommen durch und lassen Sie eine handliche Zeittabelle in der (gefürchteten) Kommentaren, die etwa wie folgt aussieht:
(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
Spezifikation
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die eine Titelliste als Eingabe und eine Zeittabelle als Ausgabe verwendet.
- Sie können Eingaben aus STDIN, einer Argumentzeichenfolge oder einer Argumentliste von Zeilen lesen. Ebenso können Sie die Ausgabe auf STDOUT drucken oder eine Zeichenfolge oder eine Liste von Zeilen zurückgeben. Wenn Sie dies nicht tun, tun Sie, was für Ihre Sprache sinnvoll ist.
Sie können davon ausgehen, dass jede Eingabezeile das Format hat
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. Für Regex-Betroffene bedeutet dies im Wesentlichen, dass Sie davon ausgehen können, dass jede Zeile gut formatiert ist (wie oben) und dass Songtitel nur aus alphanumerischen ASCII-Zeichen und Leerzeichen bestehen und nicht länger als 100 Byte sind.- Die Länge einer Spur beträgt immer mindestens
0:01
und höchstens59:59
. - Die Titelnummern nehmen in aufsteigender Reihenfolge ab
1
und zählen bis maximal99
. - Die Gesamtlänge eines Albums beträgt nicht mehr als
9:59:59
.
Das ist Code-Golf , also gewinnt der kürzeste Code (in Bytes).
Testfall
Ihr Programm sollte die in der Einführung beschriebene Konvertierung korrekt ausführen (Radiohead's Kid A ). Hier ist ein größerer Testfall (Sufjan Stevens ' Illinois 1 ) mit langen Zeichenketten, an denen Ihr Programm auch arbeiten sollte:
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
Die korrekte Ausgabe ist:
(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
Bestenliste
Damit Ihre Partitur auf der Tafel erscheint, sollte sie in folgendem Format vorliegen:
# Language, Bytes
1. Entschuldigung an Sufjan, dessen erstaunliche Spurnamen ich ein wenig zerfleischen musste, um sie an das einfache Format anzupassen, auf das sich dieses Problem beschränkt.
(h:mm:ss) Track Name
, unmittelbar gefolgt von einer neuen Zeile.Antworten:
CJam,
605755 BytesDanke an Sp3000 für das Speichern von 2 Bytes.
Teste es hier.
Erläuterung
quelle
Perl, (93 Zeichen plus
-p
) 94 BytesZu rennen:
quelle
C ++,
212209202189 BytesC ++ weil .. warum nicht?
Leben:
212209202189quelle
Python 2,
170160 BytesEs ist schon eine Weile her, dass ich Golf gespielt habe, hoffentlich ist das nicht schlecht: P
Die Eingabe sollte von Anführungszeichen umgeben und durch Zeilenumbrüche wie folgt aufgeteilt werden:
quelle
%d
für den Stundenzähler (wenn ich die Regeln richtig verstehe!)-2
!input
bisraw_input
) hinzu, um das genaue Format zu akzeptieren. ansonsten halte ich es für ungültig, da es Zeilen in einem anderen Format annimmt.Gema, 151 Zeichen
Probelauf:
quelle
Python 2,
207206 BytesVerwendung
quelle
raw_input
nur in Python 2 existiert.awk,
119101 bytesDas ist viel länger als ich es wollte. Das Problem ist, dass%H
die Stunden nicht wie gewünscht formatiert werden. Ich musste die Stunden selbst berechnen.Ack, ich bin dumm. Die Ergebnisse von
strftime
waren falsch, weil ich es anweisen musste, UTC-Zeit zu verwenden. Das hat 18 Bytes gekürzt!119-Byte-Version
quelle