Einführung
Am 24. März 2015 hat @isaacg seine Pyth-Antwort von 44 auf 42 Byte golfen . Da eine durchgestrichene 44 ( 44 ) einer regulären 44 sehr ähnlich sieht, machte @Optimizer folgenden Kommentar:
Danach, am 21. Oktober 2015, hat @ Doorknob ♦ seine Ruby-Antwort von 44 auf 40 (und später 38) Bytes golfen und seiner Antwort den folgenden Teil hinzugefügt, mit einem Link zu diesem ursprünglichen Kommentar von @Optimizer :
Dies war der Beginn eines Antwortverkettungs-Memes , bei dem jedes durchgestrichene 44 (und in einigen Fällen 4 oder 444) mit dem vorherigen verknüpft war.
Dann, am 8. April 2017 (ich bin mir nicht sicher, ob dies die erste Antwort war, aber es ist die früheste, die ich finden konnte), spielte JonathanAllan seine Python-Antwort von 44 auf 39 ab. Er benutzte <s> 44 </s>
dies jedoch sieh so aus: 44 , und fügte Folgendes zu seiner Antwort hinzu:
Durchgestrichen & nbsp; 44 & nbsp; ist nicht mehr 44 :)
Und das war im Grunde das (Anfangs-) Ende des Memes.
Herausforderung
Zu dieser Herausforderung: Geben Sie bei einer Liste mit positiven ganzen Zahlen und einem Datum die durch Kommas und Leerzeichen getrennte Liste aus, wobei jede Zahl mit Ausnahme der letzten zwischen <s>...</s>
Tags steht.
Befindet sich eine der durchgestrichenen Nummern in der Sequenz [4, 44, 444, 4444, ...]
( A00278 auf oeis.org ):
- Wenn das Datum vor dem 8. April 2017 liegt: Geben Sie auch den genauen Text
crossed out N is still regular N ;(
(N
in Kleinbuchstaben und mit Semikolon-Emoticon) ( die durchgestrichene Zahl aus der Sequenz) in einer zweiten Zeile aus. - Wenn das Datum der 8. April 2017 oder später ist: Die durchgestrichene Nummer
N
aus der Sequenz sollte mit dem Vor- und Nachkomma
versehen sein. Keine zusätzlichen Ausgabezeilen erforderlich.
Beispiele:
Input: list = [50, 48, 44, 41]
, date = January 1st, 2017
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(
Input: list = [500, 475, 444, 301, 248]
, date = June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s> 444 </s>, <s>301</s>, 248
Herausforderungsregeln:
- Sie können davon ausgehen, dass die Eingabeliste eine sortierte Liste vom größten bis zum kleinsten Wert ist und nur positive ganze Zahlen enthält. In der Realität kann die Anzahl der Bytes auch aufgrund von Fehlerkorrekturen ansteigen, aber um dieser Herausforderung willen tun wir so, als würde sie nur sinken.
- Sie können davon ausgehen, dass nur eine einzelne Nummer aus der Sequenz
[4, 44, 444, 4444, ...]
in der Eingabeliste vorhanden ist (falls vorhanden). - Das Ausgabeformat wird entweder auf STDOUT gedruckt oder als String zurückgegeben (oder als Zeichen-Array / Liste / 2D-Array, wenn dies vorzuziehen ist). Ein abschließender Zeilenumbruch ist natürlich optional.
- Das Ausgabeformat ist streng.
<s>...</s>
ist obligatorisch; ...
ist obligatorisch;", "
(Komma und Leerzeichen) ist obligatorisch; und\ncrossed out ... is still regular ... ;(
genau ist obligatorisch (in einer getrennten Zeile). - Sie können das Eingabedatum als Datumsobjekt nehmen; Zeitstempel; lose ganze Zahlen für Jahr, Monat und Tag; eine einzelne Zahl im Format
yyyyMMdd
; ganze Tage seit dem 31. Dezember 1899 (dies wäre der42832
8. April 2017); oder ein anderes vernünftiges Eingabeformat. Das Datum if-Anweisung ist nicht der Hauptteil dieser Herausforderung. - Die Eingabe-Ganzzahl-Liste kann auch eine Liste von Zeichenfolgen sein, wenn Sie möchten.
- Sie müssen die
<sup>...</sup>
Tags nichtcrossed out ... is still regular ... ;(
wie bei den eigentlichen Meme-Antworten üblich in die Zeile einfügen. - Sie können davon ausgehen, dass die Eingabeliste niemals Byteanzahlen außerhalb des
[1, 50000]
Bereichs enthält (Sie müssen sich also nur um diese fünf{4, 44, 444, 4444, 44444}
kümmern).
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.
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Input: [50, 48, 44, 41] and January 1st, 2017
Output:
<s>50</s>, <s>48</s>, <s>44</s>, 41
crossed out 44 is still regular 44 ;(
Input: [500, 475, 444, 301, 248] and June 2nd, 2018
Output:
<s>500</s>, <s>475</s>, <s> 444 </s>, <s>301</s>, 248
Input: [8, 6, 4] and December 5th, 2017
Output:
<s>8</s>, <s>6</s>, 4
Input: [8, 6, 4, 3, 2] and September 15th, 2015
Output:
<s>8</s>, <s>6</s>, <s>4</s>, <s>3</s>, 2
crossed out 4 is still regular 4 ;(
Input: [119, 99, 84, 82, 74, 60, 51, 44, 36, 34] and February 29th, 2016
Output:
<s>119</s>, <s>99</s>, <s>84</s>, <s>82</s>, <s>74</s>, <s>60</s>, <s>51</s>, <s>44</s>, <s>36</s>, 34
crossed out 44 is still regular 44 ;(
Input: [404, 123, 44] and March 4th, 2016
Output:
<s>404</s>, <s>123</s>, 44
Input: [4, 3] and April 8th, 2017
Output:
<s> 4 </s>, 3
Input: [44] and October 22nd, 2017
Output:
44
Input: [50000, 44444, 1500] and August 1st, 2018
Output:
<s>50000</s>, <s> 44444 </s>, 1500
Input: 50, 38, 23 and September 8th, 2001
Output:
<s>50</s>, <s>38</s>, 23
1889-12-31
, können wir auch Tage seither nehmen2017-04-08
?Antworten:
Jelly ,
444,94, 93 BytesEin volles Programm. Die Eingaben sind eine Liste von Zeichenfolgen und ein Datum, das als ganzzahlige Tage seit dem 1. Januar 1970 verwendet wurde (17264 der 8. April 2017).
Probieren Sie es online!
Wie?
quelle
Python 2 ,
208204203201197 BytesNimmt Eingaben als Liste von Zeichenfolgen und als Int von
yyyymmDD
Probieren Sie es online!
quelle
Excel VBA, 217 Bytes
VBE-Direktfensterfunktion, die das Eingabearray aus dem Bereich
[A:A]
und das Datum aus dem Bereich[B1]
und den Ausgaben an die Konsole entnimmt .Ungolfed und Kommentiert
-2 Bytes zum Ändern des Datumsformats auf
YYYYMMDD
-1 Byte für den Vergleich mit
42832
(int Wert für07 Apr 2017
), Danke @Neil-2 Bytes zum Entfernen
1,
aus derInStr
Anweisung, Danke @ SeaDoggie01quelle
For i=1To~-c
stattFor i=1To c-1
in Excel VBA nicht möglich? Wenn ich mich richtig erinnere ist Bitwise nichtNot
statt~
, oder sind beides möglich? (Beachten Sie, dass ich so gut wie nichts über Excel VBA weiß, also sage ich hier wahrscheinlich etwas Dummes.; P)Not
, also nein~
:(42832
(dem ganzzahligen Wert von 2017-04-07) vergleichen.Retina 0.8.2 , 130 Bytes
Probieren Sie es online! Link enthält Testfälle. Verwendet Excel-Datumsstempel (Tage seit 1899-12-31, jedoch einschließlich 1900-02-49). 141 Byte für eine Version mit ISO-Daten:
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
Hängen Sie den Stichtag an den Eingang an.
Sortieren Sie die Daten. Wenn das angegebene Datum am oder nach dem Stichtag liegt, ist das erste Datum das Stichtag.
Schließen Sie
4+
in diesem Fall den Eingang um
(in zwei Schritten, da ein Byte gespeichert wird).Löschen Sie die Daten, wenn sie ihre Arbeit erledigt haben.
Wenn ein Leerzeichen vorhanden ist
4+
, fügen Sie das Mem hinzu.Alle veralteten Byte-Zählungen streichen.
quelle
-
.April 8th, 2017
wird, ist mir eigentlich egal. Es ist nicht der Hauptteil dieser Herausforderung.42832
für den 8. April 2017, nehme ich an?Ruby,
208184180 BytesTIO-Test
Vielen Dank für @ KevinCruijssen für das Speichern von 2 Bytes!
Es ist eine Lambda-Funktion, die eine Liste von Zahlen und eine Ganzzahl als Datum im Format von annimmt
YYYYmmdd
.quelle
?
. Außerdem können Sie für Ihren TIO Ihren tatsächlichen Übermittlungscode und Testcode mit der Kopf- / Fußzeile wie folgt aufteilen . :)JavaScript, 194 Bytes
Code-Snippet anzeigen
quelle
Haskell , 227 Bytes
Probieren Sie es online! Führen Sie
f
mit der Listel
und das Datumd
. 42832 ist das Änderungsdatum.quelle
JavaScript (Node.js) , 173 Byte
Probieren Sie es online!
Verwenden der Curry-Syntax
f(array)(js_timestamp)
quelle