Вызов
Для этой задачи гористая строка - это строка, которая соответствует правилу грамматики, M: x(Mx)*
где в каждом произведении все x имеют одинаковый символ. При отступе горная строка может выглядеть примерно так:
A
B
C
D
C
E
F
E
C
B
A
Как вы можете видеть, это выглядит как гора со стороны.
Формальное определение
- Любой персонаж
a
- гористый. - Если
S
это горная строка иa
символ, тоaSa
она гористая, где сопоставление представляет собой конкатенацию строк. - Если
aSa
иaTa
есть горные нити, тоaSaTa
это гористая нить. Обратите внимание, что это правило подразумевает, что этот шаблон выполняется для любого количества повторений. (то естьaSaTaUa
,aSaTaUaVa
,aSaTaUaVaWa
... все горы.)
Примеры
Все палиндромы нечетной длины горные, например:
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
это менее тривиальный пример:
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
Пример выходов
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
правила
- Это проблема решения, поэтому любое представление true или false является допустимым выводом, если оно является правильным, непротиворечивым, однозначным и программа завершается за конечное время. Обязательно укажите соглашение о выходе с вашим решением.
- Должно быть тривиально определять, указывает ли выход истину или ложь, не зная, что является входной строкой. Обратите внимание, что это не означает, что истинные или ложные результаты должны быть постоянными, однако соглашение «печатать гористую строку, если строка гористая, и не горная строка, если не гористая», является запрещенной лазейкой по очевидным причинам.
- С другой стороны, соглашение вроде «выдает исключение для ложного и беззвучно завершает работу для истины» было бы хорошо, а также «печатает один символ для истины и все остальное для ложного»
- Это код гольф, поэтому выигрывает самая короткая программа.
- Стандартные лазейки запрещены.
wasitacaroraratisaw
? Это кажется мне горным
wasitacaroraratisaw
действительно гористый AFAICT
aaa
заставляют это не работать.
aaa
бы неплохо создать тестовый пример , где один и тот же символ должен использоваться на нескольких уровнях.