Eine Folge von n> 0 ganzen Zahlen wird als lustiger Jumper bezeichnet, wenn die absoluten Werte der Differenz zwischen aufeinanderfolgenden Elementen alle Werte 1 bis n-1 annehmen.
Die Folge [4,1,2,4] hat also absolute Differenzen [3,1,2], die der Menge [1,2,3] entsprechen (1 bis n-1, wobei n die Länge der ursprünglichen Folge ist). es ist also ein lustiger jumper.
Sequenzen haben die Länge n> 0.
Angenommen, n = 1 ist ein lustiger Jumper.
Einfacher Modus: Sorgen Sie sich nicht um stdin / stdout. Nur eine Funktion, die Argumente akzeptiert und etwas zurückgibt , das fröhlich ist oder nicht
Hard mode: Input on stdin (Leerzeichen getrennt) und Output ist "Jolly" / "Not Jolly". Kapitalisierung Angelegenheiten.
Das ist Code Golf.
BEARBEITEN: Sequenzen können negative Ganzzahlen enthalten und die Eingabe in stdin ist durch Leerzeichen getrennt.
$ jolly 2 -1 0 2
Jolly
$ jolly 19 22 24 25
Jolly
$ jolly 19 22 24 21
Not jolly
Antworten:
Haskell
Einfache 4 Zeichen
Gibt nur dann eine Liste mit lustigen Ganzzahlen zurück, wenn eine Liste mit lustigen Ganzzahlen als Eingabe angegeben wurde. Dies ist legal, basierend auf "Nur eine Funktion, die Argumente akzeptiert und etwas zurückgibt, das fröhlich ist oder nicht".
Alternative einfache Lösung mit 61 Zeichen:
Nimmt eine Liste auf und gibt die leere Liste zurück, wenn die Sequenz lustig ist.
quelle
[1,3]
ist nicht lustig, oder? Ich denke, Sie müssenlength n-1
stattdessen iterieren .Ruby,
9293 ZeichenDie harte Version mit STDIN-Eingaben.
Wenn Sie es mit
-pa
(zählt als 4) beginnen, können Sie 5 Zeichen sparen:quelle
-pa
.Java (schwer)
Angenommen, die Eingabe erfolgt über stdin. (nicht durch Kommandozeilenargumente wie im Beispiel)
Golf gespielt - 325
Ungolfen
quelle
Scala, easy mode, 123 Zeichen
Auf ideone.com ausführen oder testen:
quelle
Golfscript, easy mode,
2118 ZeichenAkzeptiert Argumente als ein Array von Ints auf dem Stapel, während sich nichts anderes auf dem Stapel befindet. Lässt 1 auf dem Stapel, wenn es lustig ist und 0 sonst. Wenn Sie stdin als durch Leerzeichen getrennte Liste von Ints eingeben möchten, müssen Sie voranstellen
und "Jolly" / "Not Jolly" (vorausgesetzt, wir machen daraus ein Programm) postpend auszugeben
quelle
[4 1 2 4]
nicht4 1 2 4
).J (leicht), 18
J (hart), 68
quelle
Brachylog , 11 Bytes (einfach)
Probieren Sie es online!
s₂ᶠ-ᵐ
- Aufeinanderfolgende Unterschiedeȧᵐ
- Absolute Werteo
- Sortieren~⟦₁
- Liegt das Ergebnis im Bereich 1 bis etwas?quelle
J, 30
26easy mode, 8176hard modeedit: liste kürzer als 3 handhaben, stdin lesung korrigieren
Die erste Zeile kümmert sich um den einfachen Modus, die zweite um den harten Modus.
J liest im Allgemeinen von rechts nach links:
2-/\
: Für jeweils zwei aufeinanderfolgende Nummern in der Liste den Unterschied nehmen|
: Absolutwert/:~
: aufsteigend sortieren>:@i.@#
: 1 bis n , für eine Liste von n Zahlen=
: Vergleiche die sortierten Unterschiede mit der Reihenfolge (mit einer J "Gabel")*/
: multipliziere alle elementweisen Booleschen Werte; Wenn alle Vergleiche 1 waren, ist ihr Produkt 1, also ist es lustigquelle
1 3
.Ruby, 97
102106(schwer)Könnte auch sein, denn alle anderen sind:
Eingabe auf stdin übernommen.
quelle
(1..d.size).to_a
durch[*1..d.size]
. Das Umschalten von Operanden ist jetzt möglich, speichert einen weiteren (insgesamt -5 Zeichen).D
leicht (
10383 Zeichen)Gibt eine Summe von 1..i.length auf Jolly zurück, wenn nicht (ein paar Regeln, die hier festgelegt sind)
hart (142 Zeichen)
Die Eingabe ist durch Leerzeichen getrennt und endet mit EOF
quelle
Groovy
Einfach: 78
Schwer: 151
quelle
PowerShell, schwer, 117
126Geschichte:
$null
eine nicht vorhandene Variable geändertquelle
Scala
Ein kurzer Stich - es sind wahrscheinlich Verbesserungen möglich.
Einfach: 77
Schwer: 124
quelle
Q, 64 (schwer), 30 (leicht)
schwer
einfach
quelle
J (leicht), 19 Zeichen
Verwendung:
Variieren Sie ähnlich wie bei DCharness , und ich hätte es nur als Kommentar hinzugefügt, ohne dass er es seit dem 23. Februar nicht mehr besucht hat.
2-/\
Nimmt den Unterschied zwischen aufeinanderfolgenden Zahlenpaaren,|
erhält den absoluten Wert jeder Zahl,/:~
sortiert in aufsteigender Reihenfolge,<:
verringert jede Zahl um 1,(=i.@#)
ein J-Hook, der die Folge von Zahlen von 0 bis zur Länge der Differenzliste - 1 (i.@#
) erzeugt und mit dieser Liste vergleicht=
.*/
multipliziert die vom vorherigen Verb erzeugte Liste von1
s und0
s.quelle
x-:y
anstatt ihn*/x=y
zu speichern.Scala easy: 138
153, 170(war fehlerhaft, später verbessert)ungolfed:
Die Idee ist, dass wir die zweite Ableitung bauen:
Scala hard 172
182, 205(war fehlerhaft / verbessert):mehr oder weniger das gleiche wie oben.
quelle
4 1 2 5
gibt true zurück. Ich habe es immer noch nicht geschafft, meinen Kopf über die linke Falte zu bekommen ...readLine
args
j("1")
wirftUnsupportedOperationException: empty.max
PHP, einfach, 129
Für ein bestimmtes Array
$s
von Ganzzahlen:Die ungolfed Version:
quelle
Gelee ,
76 Bytes (einfach)Probieren Sie es online!
Übernimmt die Eingabe als durch Kommas getrennte Zahlen im ersten Argument. Gibt 1 zurück, wenn die Sequenz lustig ist, und 0, wenn dies nicht der Fall ist!
7-Byte-Lösung:
Probieren Sie es online!
Übernimmt die Eingabe als durch Kommas getrennte Zahlen im ersten Argument. Returns nichts , wenn die Liste eine Jolly Jumper - Sequenz ist, und etwas wenn dies nicht der ist.
Wenn Sie diese Zeile hinzufügen, funktioniert dies mit der Hardspezifikation:
Jelly ,
2722 Bytes (hart, Feedback erwünscht!)Probieren Sie es online!
27 Byte (harte) Lösung:
Probieren Sie es online!
Nimmt durch Leerzeichen getrennte Zahlen auf
stdin
und gibt "Jolly" oder "Not Jolly" aus.Erläuterung:
Jedes Feedback sehr geschätzt!
quelle
LR
istJ
. Wenn Sie so etwas schreiben, erhaltenIAṢ⁼J$
Sie ein nettes 1/0-Ergebnis, und Sie können dieses verwenden, um Folgendes zu indizieren“Not jolly“Jolly”
:ɠḲVIAṢ⁼J$ị“¢⁼D“¡KṀȥƘạ»
⁼
Atom gelernt , praktisch, um nur Teile von Listen zu vergleichen.Haskell ,
59-57BytesEinfacher Modus, gibt Lustigkeit als Booleschen Wert zurück. Danke an @Laikoni für zwei Bytes.
Probieren Sie es online!
quelle
Japt ,
3230 Bytes schwer-2 Bytes von @Shaggy
Probieren Sie es online!
quelle
Python 3, 117 (schwer)
Probieren Sie es online!
quelle
JavaScript: 105 (einfacher Modus)
Golf gespielt:
Nicht golfen:
quelle
Perl, 89 (schwer)
86 Zeichen Code + 3 für die Ausführung mit der
-p
Optionquelle
Javascript (schwer): 138
quelle
quelle
R, leicht, 110
Verwendung:
quelle
Python, 72 (leicht), 114 (schwer)
Einfach:
Schwer :
quelle
Python, 255 Zeichen
quelle
C, 119 (schwer), 97 (leicht)
Die einfache Lösung liest die Eingabe aus den Argumenten und gibt eine 0 als Exit-Code zurück, wenn die Eingabe eine lustige Jumpersequenz ist:
quelle
APL (
504947, schwer)Leicht (24):
Die Funktion nimmt ein Array und gibt 0 oder 1 zurück.
quelle