Nie wiem o was wszystkich, ale nie przygotowuję się na Halloween - nigdy tego nie zrobię - ale mój sąsiad jest, więc pomożemy jej.
Potrzebuje pomocy w ustaleniu, którą markę ma słodyczy, ale ma tyle słodyczy, że nie byłaby w stanie skończyć przed Halloween.
Ona ma:
- Snickers
- KitKat
- Starburst
- Żelki
- Twix
Wejście
Wielowierszowy ciąg znaków (lub dowolna inna rozsądna forma) zawierający tylko litery i spacje.
Wynik
Wartość falsy, jeśli nie jest to prawidłowy cukierek lub który to cukierek, jeśli jest to cukierek.
Jak zdecydować, które to cukierki
Cukierek jest ważny, jeśli zawiera na nim jedną z powyższych marek. Nie jest to jednak takie proste, ponieważ jest to prawidłowy cukierek:
K i t
K a
t
Ważny cukierek to taki, w którym:
- litery są uporządkowane od lewej do prawej
- litery są pisane dużymi literami
- litery, idąc od lewej do prawej, NIE zarówno unosić się oraz opuszczać
- litery z usuniętymi białymi znakami tworzą jedną z powyższych marek
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
Przykłady
Truthys:
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
Odpowiedzi:
Pyth - 72 bajty
Mam nadzieję, że złapałem wszystkie przypadki krawędzi. Będzie kompresować listę cukierków.
Pakiet testowy .
źródło
JavaScript (ES6),
221218216212208205201 bajtówWypróbuj tutaj.
źródło
Snick
,ears|T
itp myślę, że można rozwiązać ten problem przez dodanie.split('|')
przed.indexOf
.ears|T
stanowi to problemu, ponieważ w przypadkach testowych dozwolone są tylko litery. Masz jednak racjęSnick
.Rakieta 446 bajtów
Nie golfowany:
Testowanie:
Wynik:
źródło
JavaScript (ES6), 139 bajtów
Akceptuje dane wejściowe jako tablicę łańcuchów wypełnionych spacją.
źródło
R, 199 znaków
Dane wejściowe mają postać matrycy znaków.
match
dba o to, który to cukierek (sprawdza także wielkie litery).Aby sprawdzić, czy litery są sekwencją „rosnącą” lub „malejącą”, musimy tylko sprawdzić, czy lokalizacje pierwszego znaku spacji (jeśli istnieje) w każdym wierszu rośnie lub maleje. Aby to zrobić, my
apply
diff
. To może mieć jakieś zero, w przeciwnym razie powinno być albo wszystkie dodatnie, albo wszystkie ujemnediff
z
i zabierz ze sobą produkt zewnętrzny. Jeśli diff miał mieszane wpisy dodatnie i ujemne, gdzieś w produkcie zewnętrznym pojawi się wpis ujemny. Jeśli tak, zwróć FAŁSZ.Pamiętaj, że przypadki takie jak
zwróci pusty wektor znaków (w szczególności nie „Twix”), ponieważ
match
będzie próbował dopasować „Twxi”.źródło
Python 2.7, 254 bajty
Jestem pewien, że można więcej grać w golfa. Dane wejściowe to tablica wierszy
s
.Wypróbuj tutaj!
źródło