Publicado originalmente (y eliminado) por @Tlink , que probablemente se inspiró en esta pregunta de StackOverflow .
Como era una lástima, se eliminó, porque en general parecía un buen desafío, pensé que lo volvería a publicar con el formato y las reglas adecuadas. (He intentado contactar a @Tlink y obtener su permiso para publicarlo, pero ya no responde, por eso decidí publicarlo yo mismo ahora).
Entrada: seis dígitos.
Salida: la primera o la última hora válida en el formato de 24 horas ( 00:00:00
hasta 23:59:59
). (Puede elegir usted mismo si genera la primera o la última hora válida).
Ejemplo:
Cuando las entradas son 1,8,3,2,6,4
, se pueden crear los siguientes tiempos:
12:36:48 12:38:46 12:46:38 12:48:36
13:26:48 13:28:46 13:46:28 13:48:26
14:26:38 14:28:36 14:36:28 14:38:26
16:23:48 16:24:38 16:28:34 16:28:43
16:32:48 16:34:28 16:38:24 16:38:42
16:42:38 16:43:28 16:48:23 16:48:32
18:23:46 18:24:36 18:26:34 18:26:43
18:32:46 18:34:26 18:36:24 18:36:42
18:42:36 18:43:26 18:46:23 18:46:32
21:36:48 21:38:46 21:46:38 21:48:36
23:16:48 23:48:16
Entonces sacaremos cualquiera de los dos, 12:36:48
o 23:48:16
en este caso, siendo el primero / último respectivamente.
Reglas de desafío:
- Indique si muestra la primera o la última hora válida en su respuesta.
- I / O es flexible. La entrada puede ser seis enteros separados; una cadena que contiene los seis dígitos; una lista / matriz de enteros; un solo número (posiblemente octal); etc. La salida puede ser una lista / matriz de dígitos correctamente ordenada; una cadena en el formato
HH:mm:ss
/HHmmss
/HH mm ss
; cada dígito impreso con delimitador de nueva línea; etc. Tu llamada. - Se le permite tomar los dígitos en el orden que desee, por lo que ya se pueden ordenar de menor a mayor o viceversa.
- Si no se puede crear un tiempo válido con los dígitos dados (es decir
2,5,5,5,5,5
), déjelo claro de la forma que desee. Puede volvernull
/false
;"Not possible"
; chocar con un error; etc. (No puede generar una hora no válida como55:55:52
, u otra hora válida como00:00:00
). Indique cómo maneja las entradas para las que no se puede crear una hora válida. - No tiene permiso para generar todos los tiempos válidos posibles. Solo el primero / último debe ser enviado / devuelto.
24
por horas (es decir24:00:00
), o60
por minutos / segundos (es decir00:60:60
) no son válidos. Los rangos son[00-23]
para horas y[00-59]
para minutos y segundos.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba:
Input: Earliest output: Latest output:
1,2,3,4,6,8 12:36:48 23:48:16
2,5,5,5,5,5 None possible None possible
0,0,0,1,1,1 00:01:11 11:10:00
1,1,2,2,3,3 11:22:33 23:32:11
9,9,9,9,9,9 None possible None possible
2,3,5,5,9,9 23:59:59 23:59:59
1,2,3,4,5,6 12:34:56 23:56:41
0,0,0,0,0,0 00:00:00 00:00:00
1,5,5,8,8,8 18:58:58 18:58:58
1,5,5,5,8,8 15:58:58 18:58:55
1,1,1,8,8,8 18:18:18 18:18:18
06:08:60
sería válido, dado que ha habido un segundo intercalar durante ese minuto?
60
para minutos y segundos no es válido. Los rangos son [00-23]
, [00-59]
y [00-59]
. Aclarará esto en el desafío.
23:48:16
una salida válida para el ejemplo?