Betrachten Sie ein Datum im Format YYYY-MM-DD
. Sie können den Joker *
am Ende der Datumszeichenfolge verwenden. ZB 2016-07-2*
beschreibt alle Daten von 2016-07-20
bis 2016-07-29
.
Betrachten Sie nun einen Zeitraum, der durch ein Start- und ein Enddatum dargestellt wird.
Der Algorithmus muss die kleinstmögliche Liste von Daten finden, die den Zeitraum darstellen.
Lassen Sie uns ein Beispiel verwenden. Für den folgenden Zeitraum:
- Anfangsdatum:
2014-11-29
- Endtermin:
2016-10-13
Der Algorithmus muss ein Array mit der folgenden Datumsliste zurückgeben:
2014-11-29
2014-11-30
2014-12-*
2015-*
2016-0*
2016-10-0*
2016-10-10
2016-10-11
2016-10-12
2016-10-13
Antworten:
PHP,
541343 BytesIch wollte, dass der Algorithmus überhaupt funktioniert. Aber das Golfspielen hat weitaus mehr Spaß gemacht als ich erwartet hatte (insbesondere das Durchsuchen der unterstützten Datums- und Zeitformate ).
Drei Hauptaktionen haben ungefähr 130 Bytes gespart; Aber die 70 Bytes von kleineren Golfspielen
(die auch einen der großen Schritte überflüssig machten) machten viel Spaß.
Nimmt Eingaben von Befehlszeilenargumenten entgegen. Laufen Sie mit
-nr
oder testen Sie es online .Anmerkungen
Y-m-3*
fürY-m-30
; 7 Bytes hinzufügen, um das Problem zu beheben:|$a==$t
Nach einfügen777600))
.+$p
durch+!$p
.aber ich werde ein bisschen warten, um zu sehen, ob jemand anderes einreicht, bevor ich verwöhne.
quelle