Wprowadzenie
Czy nie nienawidzisz tego, gdy ktoś przesyła album, który lubisz na YouTube, ale opis zawiera tylko listę utworów ? Lubię to:
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
Teraz nie wiesz, kiedy zaczyna się Poranny Dzwon, chyba że sumujesz kilka razy w swojej głowie! Zwykle przychodzi jakaś dobra dusza i zostawia poręczny harmonogram w sekcji (przerażających) komentarzy, która wygląda mniej więcej tak:
(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
Specyfikacja
Twoim zadaniem jest napisanie programu lub funkcji, która pobiera listę ścieżek jako dane wejściowe, a tabelę czasową jako dane wyjściowe.
- Możesz wybrać odczytywanie danych wejściowych ze STDIN, łańcucha argumentów lub listy argumentów linii. Podobnie możesz wybrać wydruk danych wyjściowych do STDOUT, zwrócenie ciągu znaków lub zwrócenie listy wierszy. W przeciwnym razie rób wszystko, co ma sens dla twojego języka.
Możesz założyć, że każda linia wejściowa ma format
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. W przypadku osób z zaburzeniami wyrażenia regularnego oznacza to zasadniczo, że możesz założyć, że każda linia jest dobrze sformatowana (jak wyżej), a tytuły utworów zawierają tylko alfanumeryczne znaki i spacje ASCII i nie mają więcej niż 100 bajtów.- Długość ścieżki jest zawsze co najmniej
0:01
i nie większa niż59:59
. - Numery utworów rosną w kolejności, zaczynając od
1
i licząc do nie więcej niż99
. - Całkowita długość albumu jest nie większa niż
9:59:59
.
To jest golf golfowy , więc wygrywa najkrótszy kod (w bajtach).
Przypadek testowy
Twój program powinien poprawnie wykonać konwersję przedstawioną we wstępie (Radiohead's Kid A ). Oto większy przypadek testowy (Sufjan Stevens ' Illinois 1 ) z długimi łańcuchami, na których Twój program powinien również pracować:
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
Prawidłowe wyjście to:
(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
Tabela liderów
Twój wynik powinien pojawić się na tablicy, powinien mieć następujący format:
# Language, Bytes
1. Przepraszam Sufjana, którego niesamowite nazwy utworów musiałem trochę pomieszać, aby pasowały do prostego formatu, do którego ten problem jest ograniczony.
(h:mm:ss) Track Name
, po której następuje natychmiast nowa linia.Odpowiedzi:
CJam,
605755 bajtówDzięki Sp3000 za oszczędność 2 bajtów.
Sprawdź to tutaj.
Wyjaśnienie
źródło
Perl, (93 znaki plus
-p
) 94 bajtyBiegać:
źródło
C ++,
212209202189 bajtówC ++, ponieważ .. dlaczego nie?
Relacja na żywo:
212209202189źródło
Python 2,
170160 bajtówMinęło trochę czasu, odkąd grałem w golfa, mam nadzieję, że nie jest tak źle: P
Dane wejściowe powinny być otoczone cudzysłowami i dzielone przez nowe wiersze, tak:
źródło
%d
licznik godzin (jeśli dobrze rozumiem zasady!) Na-2
!input
doraw_input
), aby zaakceptować dokładny format; w przeciwnym razie uważam, że jest nieprawidłowy, ponieważ zakłada wiersze w innym formacie.Gema, 151 znaków
Przykładowy przebieg:
źródło
Python 2,
207206 bajtówStosowanie
źródło
raw_input
istnieje tylko w Pythonie 2.awk,
119101 bajtówTo jest znacznie dłużej, niż chciałem. Problem polega na tym,%H
że nie formatuje godzin zgodnie z żądaniem, więc musiałem sam je obliczyć.Ack, jestem głupia. Wyniki
strftime
były błędne, ponieważ musiałem powiedzieć mu, aby wykorzystał czas UTC. To odcięło 18 bajtów!Wersja 119-bajtowa
źródło