Ich mag wirklich Zeiten, die bestimmten Mustern folgen. Insbesondere mag ich Zeiten, in denen alle Ziffern gleich sind oder sich alle Ziffern rechnerisch von links nach rechts um eins erhöhen. Außerdem hasse ich es, wenn Leute Briefe in meine Zeit stecken, so dass all dieser Unsinn von AM / PM für mich tot ist. So sind meine Lieblingszeiten:
0000 0123 1111 1234 2222 2345
Zu meiner Beruhigung müssen Sie mir ein einzelnes Programm schreiben, das unter Berücksichtigung der aktuellen Zeit als Eingabe beide: (A) Wenn es jetzt nicht eine meiner Lieblingszeiten ist, sagt es mir beide (i) wie viele Minuten es sind seit meiner letzten Lieblingszeit und (ii) in wie vielen Minuten wird meine nächste Lieblingszeit eintreten; und (B) , wenn es ist jetzt eine meiner Lieblings - Zeiten liefert einen einzigen ‚Signalwert‘.
Eingang
Ihr Programm sollte (mit welcher Methode auch immer: Funktionsargument stdin
, Befehlszeilenargument usw.) die aktuelle Uhrzeit in einem der folgenden Formate akzeptieren :
Eine vierstellige Zeit als Zeichenfolge
Eine Ganzzahl, die links mit Nullen aufgefüllt werden kann, um eine vierstellige Zeit als Zeichenfolge zu erhalten
Eine Folge von vier (oder weniger) Ganzzahlen, die so angeordnet sind, dass die erste Ganzzahl in der Folge die am weitesten links stehende (signifikante) Ziffer in der Zeiteingabe ist (z. B.
0951
als[0, 9, 5, 1]
oder gültig dargestellt werden könnte[9, 5, 1]
).- Die Darstellung
0000
als Sequenz mit der Länge Null ist akzeptabel
- Die Darstellung
Im Fall einer Zeichenfolge-Eingabe sollte sie nur Ziffern enthalten, keine Doppelpunkte oder andere Satzzeichen. Es kann davon ausgegangen werden, dass Eingaben immer rund um die Uhr gültig sind:, HHMM
where 0 <= HH <= 23
und 0 <= MM <= 59
. Ignorieren Sie die Möglichkeit einer Schaltsekunde.
Ausgabe
Ihr Programm muss stdout
entweder (A) oder (B) liefern (Funktionsrückgaben usw. sind in Ordnung) , je nachdem, ob der Eingabewert eine Zielzeit ist oder nicht.
Für ein):
Geben Sie zwei numerische Werte in einem sinnvollen Format an, z. B .:
Single-String-Ausgabe mit passendem Begrenzer
Sequentielle Ganzzahl- / Zeichenfolgenausgaben, z. B.
bash
Drucken von zwei Zeilen nachstdout
:49 34
Sortierte Rückgabewerte der Länge zwei, z. B. eine Python-Liste, ein C-Array usw .:
[49, 34]
Die Werte können in beliebiger Reihenfolge angegeben werden. Beispielsweise wären beide der folgenden Ausgaben gültige Ausgaben für eine Eingabe von 1200
:
49 34
34 49
Die Reihenfolge und das Trennzeichen müssen jedoch für alle Eingabewerte gleich sein!
Für (B):
Produzieren Sie ein sonst unerreichbares Ergebnis. Es muss jedoch für alle sechs Zielzeiten das gleiche Ergebnis erzielt werden. Endlosschleifen sind ausgeschlossen.
Beispieleingänge / -ausgänge
YAY!!!
wird hier als anschauliches Beispiel verwendet und ist nicht vorschreibend.
Input Output
------ --------
0000 YAY!!!
0020 20 63
0105 65 18
0122 82 1
0123 YAY!!!
0124 1 587
0852 449 139
1111 YAY!!!
1113 2 81
1200 49 34
1234 YAY!!!
1357 83 505
1759 325 263
1800 326 262
1801 327 261
2222 YAY!!!
2244 22 61
2345 YAY!!!
2351 6 9
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes. Standardlücken sind nicht zulässig.