Introducción
¿No odias cuando alguien sube un álbum que te gusta a YouTube, pero la descripción solo contiene una lista de canciones ? Me gusta esto:
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
¡Ahora no sabe cuándo comienza Morning Bell a menos que sume un montón de veces en su cabeza! Por lo general, una buena alma vendrá y dejará una tabla de tiempo útil en la sección de comentarios (temida), que se parece a esto:
(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
Especificación
Su tarea es escribir un programa o función que tome una lista de pistas como entrada y una tabla de tiempo como salida.
- Puede elegir leer la entrada de STDIN, o una cadena de argumentos, o una lista de líneas de argumentos. Del mismo modo, puede elegir imprimir la salida en STDOUT, o devolver una cadena, o devolver una lista de líneas. De lo contrario, haga lo que tenga sentido para su idioma.
Puede suponer que cada línea de entrada tiene el formato
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. Para las personas con problemas de expresión regular, esto esencialmente significa que puede asumir que cada línea está bien formateada (como se indicó anteriormente) y que los títulos de las canciones consisten solo en caracteres y espacios alfanuméricos ASCII , y no tienen más de 100 bytes de longitud.- La longitud de una pista siempre es al menos
0:01
y no más59:59
. - Los números de pista están en orden creciente, comenzando desde
1
y hasta no más de99
. - La duración total de un álbum no es más de
9:59:59
.
Esto es código de golf , por lo que gana el código más corto (en bytes).
Caso de prueba
Su programa debe realizar correctamente la conversión presentada en la introducción (Radiohead's Kid A ). Aquí hay un caso de prueba más grande (Sufjan Stevens ' Illinois 1 ) con cadenas largas en las que su programa también debería funcionar:
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
La salida correcta es:
(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
Tabla de clasificación
Para que su puntaje aparezca en el tablero, debe estar en este formato:
# Language, Bytes
1. Disculpas a Sufjan, cuyos asombrosos nombres de pistas tuve que cambiar un poco para que encajen en el formato simple al que se limita este problema.
(h:mm:ss) Track Name
, seguido inmediatamente por una nueva línea.Respuestas:
CJam,
605755 bytesGracias a Sp3000 por guardar 2 bytes.
Pruébalo aquí.
Explicación
fuente
Perl, (93 caracteres más
-p
) 94 bytesCorrer:
fuente
C ++,
212209202189 bytesC ++ porque ... ¿por qué no?
Vivir:
212209202189fuente
Python 2,
170160BytesHa pasado un tiempo desde que hice un golf, espero que esto no sea tan malo: P
La entrada debe estar entre comillas y dividida por nuevas líneas, así:
fuente
%d
el contador de horas (si entiendo las reglas correctamente!) Para-2
!input
araw_input
) para aceptar el formato exacto; de lo contrario, creo que no es válido, ya que supone líneas en un formato diferente.Gema, 151 caracteres
Ejecución de muestra:
fuente
Python 2,
207206 bytesUso
fuente
raw_input
solo existía en Python 2.awk,
119101bytesEsto es mucho más de lo que quería que fuera. El problema es que%H
no formatea las horas como se solicitó, por lo que necesitaba calcular las horas yo mismo.Ack, soy estúpido. Los resultados de
strftime
estaban equivocados porque necesitaba decirle que usara la hora UTC. ¡Eso cortó 18 bytes!Versión de 119 bytes
fuente