Wyzwanie
W przypadku tego wyzwania górzysty sznurek jest zgodny z regułą gramatyczną, w M: x(Mx)*
której przy każdej produkcji wszystkie x mają ten sam charakter. Po wcięciu górski ciąg może wyglądać mniej więcej tak:
A
B
C
D
C
E
F
E
C
B
A
Jak widać, z boku wygląda trochę jak góra.
Definicja formalna
- Każda pojedyncza postać
a
jest górzysta. - Jeśli
S
jest górzystym ciągiem ia
jest postacią, toaSa
jest górzysty, gdzie zestawienie reprezentuje konkatenację struny. - Jeśli
aSa
iaTa
są strunami górzystymi, toaSaTa
jest to struna górzysta. Zauważ, że ta reguła oznacza, że ten wzór obowiązuje dla dowolnej liczby powtórzeń. (czyliaSaTaUa
,aSaTaUaVa
,aSaTaUaVaWa
... są górzyste).
Przykłady
Wszystkie palindromy o nieparzystej długości są górzyste, na przykład:
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
jest mniej trywialnym przykładem:
q
w
e
r
t
y
t
r
a
s
d
f
d
g
d
s
a
r
e
w
q
j
k
l
k
j
q
Przykładowe wyniki
a ==> true
aaa ==> true
mom ==> true
tacocat ==> true
qwertytrasdfdgdsarewqjklkjq ==> true
wasitacaroraratisaw ==> true
abcbcbcbcba ==> true
aaaaabcbbba ==> true
<empty string> ==> false
aa ==> false
pie ==> false
toohottohoot ==> false
asdfdghgfdsa ==> false
myhovercraftisfullofeels ==> false
Zasady
- Jest to problem decyzyjny, więc każda reprezentacja prawdy lub fałszu jest prawidłowym wyjściem, o ile jest poprawna, spójna, jednoznaczna, a program kończy się w określonym czasie. Pamiętaj, aby podać konwencję wyjściową ze swoim rozwiązaniem.
- Ustalenie, czy dane wyjściowe wskazują prawda, czy fałsz, nie musi być trywialne, bez konieczności znajomości łańcucha wejściowego. Zauważ, że nie oznacza to, że dane wyjściowe zgodne z prawdą lub fałszem muszą być stałe, jednak konwencja „drukuj górzysty sznurek, jeśli sznur jest górzysty, a nie-górzysty sznur, jeśli nie jest górzysty”, jest z oczywistych powodów zabroniona.
- Z drugiej strony, konwencja typu „zgłasza wyjątek dla fałszu i kończy cicho dla prawdy”, a także „drukuje pojedynczy znak dla prawdy, a wszystko inne dla fałszu”
- To jest golf golfowy, więc wygrywa najkrótszy program.
- Standardowe luki są zabronione.
wasitacaroraratisaw
? Wydaje mi się, że jest górą
wasitacaroraratisaw
jest rzeczywiście górzysty AFAICT
aaa
sprawiają, że to nie działa.
aaa
byłby dobry, w którym ta sama postać musi być używana na wielu poziomach.