Su programa / función, etc. tomará 2 entradas. La primera será una lista de quién vino a mi fiesta y cuándo. Ejemplo:
Kevin 13:02
Ruby 5
Sam 3
Lisa 6
Bob 12
Qué significa eso? Significa que Kevin llegó primero a mi fiesta (a las 13:02, 24 horas), luego a Ruby 5 minutos más tarde, luego a Sam 3 minutos más tarde, luego a Lisa 6 minutos más tarde, y al último Bob 12 minutos más tarde.
La segunda entrada será cuando comenzó mi fiesta. Ejemplo:
13:15
(Tiempo de 24 horas). Su salida debe ser la lista de personas que llegaron tarde. (Cualquier persona exactamente a tiempo está bien). Cálculos de ejemplo (solo por ejemplo, no envíe estos)
Kevin 13:02
Ruby 13:07
Sam 13:10
Lisa 13:16
Bob 13:28
Lisa y Bob llegaron después 13:15, por lo tanto, este programa debería imprimir "Lisa, Bob".
Suposiciones de entrada
- La entrada 1 siempre será un nombre (regex
[A-Z][a-z]*), luego un espacio, luego un tiempo de 24 horas en el formulariohours:minutesen la primera línea, luego un nombre, un espacio y un entero positivo (número de minutos más tarde) en las siguientes líneas . Siempre habrá al menos 1 línea. - Si lo desea, puede tomar la entrada 1 con cualquier otro carácter en lugar de un salto de línea.
- La entrada 2 estará en el formato
hours:minutes. - Puede tomar sus entradas como una cadena separada por cualquier carácter si lo desea. Esto es opcional
- No te preocupes por el crossover del día. Mis fiestas nunca para después
23:59.
Reglas de salida
- La salida puede ser un valor de retorno de función o una cadena reflejada en STDIN, un archivo, etc. Debe devolver una cadena o una matriz / lista.
- Si devuelve una cadena, debe ser cada persona que llegó tarde (el orden no importa), separado por un delimitador no alfanumérico.
- Si devuelve una matriz / lista, debe ser una lista de todos los que llegaron tarde.

(regex [A-Z][a-z]*)" ¿Esto sugiere que los nombres pueden estar vacíos?23:59?Respuestas:
MATL , 31 bytes
La primera entrada usa espacio en lugar de salto de línea (permitido por el desafío).
La salida utiliza el salto de línea como separador.
Pruébalo en línea!
Explicación
fuente
JavaScript (ES6),
9897 bytesGuardado 1 byte gracias a Neil
Toma la lista de invitados
ly el tiempo de fiestahen sintaxis curry(l)(h). Espera un salto de línea final en la lista. Devuelve una lista de nombres separados por espacios comoLisa Bob.Formateado y comentado
Manifestación
fuente
(.*) (.*)\nfunciona(.*)coincidiría con la línea completa.PHP,
118 98 9591 bytestoma datos de los argumentos de la línea de comandos (si lo desea, puede interpretarlos como líneas separadas por espacios); imprime nombres sin delimitador. Ejecutar
-ro probarlo en línea .edición 1: guardado 20 bytes con impresión directa
edición 2: guardado 3 bytes al eliminar el delimitador
edición 3: guardado 4 bytes al explotar que los enteros simples no son fechas válidas para
strtotimeDescompostura
fuente
c, 178 bytes
Pruébalo en línea
fuente
JavaScript ES6, 185 bytes
Pruébalo en línea!
fuente
f('Kevin 13:02\nRuby 5\nSam 3...PowerShell ,
215196180 bytesPruébalo en línea!
Aproximadamente 1/3 de esto es análisis de entrada, por lo que no estoy seguro de cuánto más puedo jugarlo.
Toma de entrada
$acomo una cadena delimitada por comas de nombres y tiempos / minuto, y$bcomohh:mmforma de cadena. En primer lugar,-split$aen,, almacenar el resultado en la primera$xy la restante en$a, con una explícita refundición de$acomoarray(por lo que el bucle más tarde funciona correctamente). Inicializamos nuestra tabla hash$z, establecemos$iy$jestar$x-spliten espacios en blanco, y establecemos$z[$i]para ser eldatede$j(almacenado$ypara su uso posterior).Luego recorremos el resto
$a. En cada iteración, hacemos algo similar:-splitla cadena en el espacio en blanco establece el$zíndice apropiado para que esté muchos minutos más allá de donde estamos actualmente. Esto usa un truco de nombre de propiedad acortado para guardar algunos bytes, usando en|% *es $jlugar de.AddMinutes($j).Por último,
.GetEnumerator()(de nuevo usando el truco) de nuestra tabla hash, yWhere-Objectseleccionar esas entradas con unavalueque es-greatertHan$b(es decir, llegan tarde a la fiesta). Luego seleccionamos solo los.Names de los mismos. La salida es como una matriz implícita, en la que el valor predeterminadoWrite-Outputinserta nuevas líneas entre ellas.Ahorré un montón gracias a briantist por recordarme que [array] es una cosa. Y un montón más por la punta del nombre de la propiedad acortada.
fuente
$x,[array]$a=$a-split','?[array]es un elenco válido. Jaja. Demasiado golf, supongo.GetEnumeratoryAddMinutesson buenos candidatos para la%sintaxis del métodoPython 2 ,
140,148,144 bytesPruébalo en línea!
Formato de entrada
fuente
'Kevin 13:47;Ruby 5;Sam 3;Lisa 6;Bob 12;14:00'no imprime nada, a pesar de que Lisa y Bob todavía llegan tarde.Bash,
135124115 bytesPruébalo en línea!
fuente
CJam,
66545854514946 bytesLa entrada 1 se da a través de STDIN, la entrada 2 se da como una cadena en la pila. La salida es una matriz en la pila. El separador para la entrada 1 es un espacio, por ejemplo
Kevin 13:02 Ruby 5 Sam 3 Lisa 6 Bob 12.Seguimiento de pila:
Explicación:
Kconvierte entre una horahh:mmy un número que representa cuántos minutos han pasado desde la medianoche.[782 5 3 6 12].[782 787 790 796 808], lo que da los tiempos en que todos vinieron.fuente
JavaScript
285283 bytesToma la lista de invitados
iy el tiempo de fiestapen sintaxis curry(i)(p). Devuelve una lista de nombres separados por comas comoLisa,Bob.Sé que es bastante largo y actualmente en el último lugar por un margen justo, pero eso es lo que se me ocurre.
fuente
C # ,
269267 bytesGolfed
Sin golf
Legible sin golf
Código completo
Lanzamientos
- 2 bytes- Gracias a VisualMelon269 bytes- Solución inicial.Notas
fuente
using D=System.DateTime;directiva (¡no olvide reemplazar elvars!). Realmente debería proporcionar tipos para los parámetros lambda para que este código sea completamente inequívoco (es decir(string l,string f)). También creo que hay un pequeño error, necesitah>smás queh>=s(¡1byte de ahorro!) Según "(Cualquier persona exactamente a tiempo está bien)". Puedes hacerh.Ticks<1? Es posible que encuentre un valor anulableDateTimemás barato que el usoDateTime.Min, pero no he verificado las implicaciones completas aquí. Con la cláusula de uso,==D.Mindebería funcionar también.h>sYo haré eso.h.Ticks<1y ésta también.usingsy con lambdas, no puedo encontrar nada que diga esto explícitamente en meta, pero esta pregunta sugiere que está permitido. Existe un consenso razonable de que se deben requerir tipos de parámetros explícitos (debo agregar que estoy firmemente a favor). Por cierto, los Mods están ahí para mantener las cosas civiles desde la perspectiva de SE, no para hacer cumplir las propias reglas de PPCG.usingsmayoría, principalmente porque luego sentiría que requeriría un código completo, por lo tanto, digo que dudo que pueda lograr una función como solución, tal vez agregando dos bloques, uno parausingsy otro para el función lambda? Sobre el consenso, creo que agregar los desaparecidosFunc<...> f = ...;lo resolvería, aunque debería especificarse el nombre completoSystem.Func<...> f = ...;string scon la sintaxis C # 7 (6? No puedo recordar)) si prefiere no mezclar lambdas y usos.CJam ,
4341 bytesPruébalo en línea!
Explicación
fuente
Lua,
211206 bytesEl primer codegolf del año para mí, todavía debería ser golfable.
Editar: Guardado 5 Bytes usando una taquigrafía para
string.matchExplicaciones
si quieres probar este código, puedes usar el siguiente fragmento
fuente
Java,
346304284275 bytesDetallado en vivo
fuente
String[] n,yString[] a?Integer.parseInt(n)connew Short(n). Y según los comentarios del desafío,LisaBobtambién es un resultado válido, por lo que puede cambiar elprintlnaprint.Lote, 163 bytes
Toma entrada en STDIN. La primera línea es la hora de inicio de la fiesta, luego la lista de invitados. Utiliza el truco de @ Arnauld para convertir hh: mm en minutos.
La entrada preferida de Batch para esto sería como una serie de parámetros de línea de comandos (comenzando con la hora de la fiesta, luego cada invitado y hora como argumentos separados). Esto solo tomaría 129 bytes:
fuente
Groovy, 121 bytes
fuente
PowerShell,
170160bytesPruébalo en línea!
fuente