Ich weiß nicht alles über Sie, aber ich bereite mich nicht auf Halloween vor - habe es nie getan -, aber meine Nachbarin ist es, also helfen wir ihr.
Sie braucht Hilfe, um herauszufinden, welche Süßigkeitsmarke sie hat, aber sie hat so viel Süßigkeiten, dass sie nicht in der Lage wäre, vor Halloween fertig zu werden.
Sie hat:
- Snickers
- KitKat
- Starburst
- Gummibärchen
- Twix
Eingang
Eine mehrzeilige Zeichenfolge (oder eine andere sinnvolle Form), die nur Buchstaben und Leerzeichen enthält.
Ausgabe
Ein falscher Wert, wenn es sich nicht um eine gültige Süßigkeit handelt oder um welche Süßigkeit es sich handelt, wenn es sich um eine Süßigkeit handelt.
Wie man entscheidet, welche Süßigkeit es ist
Eine Süßigkeit ist gültig, wenn eine der oben genannten Marken darauf steht. Es ist jedoch nicht so einfach, denn dies ist eine gültige Süßigkeit:
K i t
K a
t
Eine gültige Süßigkeit ist eine, bei der:
- Die Buchstaben sind von links nach rechts geordnet
- Die Buchstaben werden richtig groß geschrieben
- die Buchstaben, von links nach rechts, nicht sowohl auf- und absteigen
- Die Buchstaben ohne Leerzeichen gehören zu den oben genannten Marken
Das ist Code-Golf , also gewinnt der kürzeste Code in Byte!
Beispiele
Wahrheiten:
1.
kers
c
i
n
S
2.
Kit K a t
3.
St a
r b u
r st
4.
Bear s
G ummy
5.
T w i
x
Falsys:
1.
SNICKERS
2.
C n
a d y
3.
xiwT
4.
S C I
ss o
r s
5.
Kit
Kat
Antworten:
Pyth - 72 Bytes
Ich hoffe, ich habe alle Randfälle abgefangen. Wird die Süßigkeitenliste komprimieren.
Test Suite .
quelle
JavaScript (ES6),
221218216212208205201 BytesProbieren Sie es hier aus.
quelle
Snick
,ears|T
usw. zurück. Ich denke, Sie können dies beheben, indem Sie.split('|')
vorher hinzufügen.indexOf
.ears|T
ist nicht das Problem, da in Testfällen nur Buchstaben erlaubt sind. Sie haben jedoch Recht, zSnick
.Racket 446 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle
JavaScript (ES6), 139 Byte
Akzeptiert Eingaben als Array von mit Leerzeichen aufgefüllten Zeichenfolgen.
quelle
R 199 Zeichen
Die Eingabe erfolgt in Form einer Zeichenmatrix.
match
kümmert sich um welche Süßigkeiten es ist (es prüft auch die Großschreibung).Um zu überprüfen, ob die Buchstaben eine "aufsteigende" oder "absteigende" Folge sind, müssen wir nur überprüfen, ob die Positionen des ersten nicht-Leerzeichens (falls vorhanden) in jeder Zeile zunehmen oder abnehmen. Dazu haben wir
apply
diff
. Dies könnte eine Null enthalten, andernfalls sollte entweder alles positiv oder alles negativ seindiff
z
und nehmen Sie das äußere Produkt mit sich. Wenn das Diff positive und negative Einträge gemischt hat, gibt es irgendwo in seinem äußeren Produkt einen negativen Eintrag. Wenn ja, geben Sie FALSE zurück.Beachten Sie, dass Fälle wie
match
Gibt einen leeren Zeichenvektor zurück (insbesondere nicht "Twix"), da versucht wird, "Twxi" zu entsprechen.quelle
Python 2.7, 254 Bytes
Ich bin mir sicher, dass man mehr Golf spielen kann. Die Eingabe ist ein Array von Zeilen
s
.Probieren Sie es hier aus!
quelle