Ursprünglich gepostet (und gelöscht) von @Tlink , was höchstwahrscheinlich von dieser StackOverflow-Frage inspiriert wurde .
Da es eine Schande war, dass es gelöscht wurde, weil es im Allgemeinen eine gute Herausforderung zu sein schien, dachte ich, ich würde es mit den richtigen Formatierungen und Regeln neu veröffentlichen. (Ich habe versucht, @Tlink zu kontaktieren und seine / ihre Erlaubnis zum Posten zu erhalten, aber (s) er antwortet nicht mehr, weshalb ich mich entschlossen habe, es jetzt selbst zu posten.)
Eingabe: Sechs Ziffern.
Ausgabe: Entweder die erste oder die letzte gültige Zeit im 24-Stunden-Format ( 00:00:00
bis 23:59:59
). (Sie können selbst entscheiden, ob Sie die erste oder die letzte gültige Zeit ausgeben möchten.)
Beispiel:
Bei den Eingaben 1,8,3,2,6,4
können die folgenden Zeiten erstellt werden:
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
Also geben wir entweder 12:36:48
oder 23:48:16
in diesem Fall als erstes / letztes aus.
Herausforderungsregeln:
- Geben Sie an, ob Sie in Ihrer Antwort den ersten oder den letzten gültigen Zeitpunkt ausgegeben haben.
- I / O ist flexibel. Die Eingabe kann aus sechs getrennten Ganzzahlen bestehen. eine Zeichenkette mit den sechs Ziffern; eine ganzzahlige Liste / Array; eine einzelne (möglicherweise oktale) Zahl; usw. Die Ausgabe kann eine korrekt geordnete Liste / Reihe von Ziffern sein. ein String in dem Format
HH:mm:ss
/HHmmss
/HH mm ss
; Jede Ziffer wird mit einem Trennzeichen für neue Zeilen gedruckt. usw. Ihr Anruf. - Sie können die Ziffern in beliebiger Reihenfolge eingeben, damit sie bereits von der niedrigsten zur höchsten oder umgekehrt sortiert werden können.
- Wenn mit den angegebenen Ziffern (dh
2,5,5,5,5,5
) keine gültige Uhrzeit erstellt werden kann , machen Sie dies auf eine beliebige Weise deutlich. Kann zurückkehrennull
/false
;"Not possible"
; Absturz mit einem Fehler; usw. (Sie können keine ungültige Zeit wie55:55:52
oder eine andere gültige Zeit wie ausgeben00:00:00
.) Geben Sie an, wie Eingaben behandelt werden, für die keine gültige Zeit erstellt werden kann. - Sie dürfen nicht alle möglichen gültigen Zeiten ausgeben. Es sollte nur das früheste / späteste ausgegeben / zurückgesandt werden.
24
Stunden (dh24:00:00
) oder60
Minuten / Sekunden (dh00:60:60
) sind nicht gültig. Die Bereiche gelten[00-23]
für Stunden sowie[00-59]
für Minuten und Sekunden.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
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
gültig, wenn in dieser Minute eine Schaltsekunde aufgetreten ist?
60
Minuten und Sekunden sind ungültig. Bereiche sind [00-23]
, [00-59]
und [00-59]
. Wird dies in der Herausforderung verdeutlichen.
23:48:16
für das Beispiel keine gültige Ausgabe?