Publié à l' origine (et supprimé) par @Tlink , qui était très probablement inspiré de cette question StackOverflow .
Comme c'était dommage, il a été supprimé, car cela semblait être un bon défi en général, j'ai pensé que je le publierais avec un formatage et des règles appropriés. (J'ai essayé de contacter @Tlink et d'obtenir son autorisation de le publier, mais il ne répond plus, c'est pourquoi j'ai décidé de le publier moi-même maintenant.)
Entrée: six chiffres.
Sortie: soit la première ou la dernière heure valide au format 24 heures ( 00:00:00
jusqu'à 23:59:59
). (Vous pouvez choisir vous-même si vous sortez la première ou la dernière fois valide.)
Exemple:
Lorsque les entrées le sont 1,8,3,2,6,4
, les heures suivantes peuvent être créées:
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
Nous allons donc sortir soit 12:36:48
ou 23:48:16
dans ce cas, étant respectivement le premier / dernier.
Règles du défi:
- Indiquez si vous avez indiqué la première ou la dernière fois valide dans votre réponse.
- Les E / S sont flexibles. L'entrée peut être six entiers séparés; une chaîne contenant les six chiffres; une liste / un tableau d'entiers; un seul numéro (éventuellement octal); etc. La sortie peut être une liste / un tableau de chiffres correctement ordonné; une chaîne au format
HH:mm:ss
/HHmmss
/HH mm ss
; chaque chiffre imprimé avec un délimiteur de nouvelle ligne; etc. Votre appel. - Vous êtes autorisé à prendre les chiffres dans l'ordre que vous souhaitez, afin qu'ils puissent déjà être triés du plus bas au plus élevé ou vice-versa.
- Si aucune heure valide ne peut être créée avec les chiffres donnés (c'est-à-dire
2,5,5,5,5,5
), indiquez-le clairement de la manière que vous souhaitez. Peut retournernull
/false
;"Not possible"
; planter avec une erreur; etc. (Vous ne pouvez pas sortir une heure non valide comme55:55:52
ou une autre heure valide comme00:00:00
.) Veuillez indiquer comment il gère les entrées pour lesquelles aucune heure valide ne peut être créée. - Vous n'êtes pas autorisé à afficher toutes les heures valides possibles. Seuls les premiers / derniers doivent être sortis / retournés.
24
pendant des heures (ie24:00:00
), ou60
pour des minutes / secondes (ie00:60:60
) ne sont pas valides. Les plages sont[00-23]
pour les heures et[00-59]
pour les minutes et les secondes.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
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
valable, étant donné qu'il y a eu une seconde intercalaire pendant cette minute?
60
minutes et les secondes ne sont pas valides. Ranges sont [00-23]
, [00-59]
et [00-59]
. Clarifiera cela dans le défi.
23:48:16
une sortie valide pour l'exemple?