Reto
Para este desafío, una cadena montañosa es una que se ajusta a la regla gramatical M: x(Mx)*
donde en cada producción, todas las x son el mismo carácter. Cuando se sangra, una cadena montañosa podría verse así:
A
B
C
D
C
E
F
E
C
B
A
Como puede ver, se parece un poco a una montaña desde el costado.
Definicion formal
- Cualquier personaje individual
a
es montañoso. - Si
S
es una cadena montañosa ya
es un personaje, entoncesaSa
es montañosa, donde la yuxtaposición representa la concatenación de cadenas. - Si
aSa
yaTa
son cadenas montañosas, entoncesaSaTa
es una cadena montañosa. Tenga en cuenta que esta regla implica que este patrón se cumple para cualquier número de repeticiones. (es deciraSaTaUa
,aSaTaUaVa
,aSaTaUaVaWa
... son todos montañosa.)
Ejemplos
Todos los palíndromos de longitud impar son montañosos, por ejemplo:
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
Es un ejemplo menos trivial:
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
Salidas de ejemplo
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
Reglas
- Este es un problema de decisión, por lo que cualquier representación de verdadero o falso es una salida válida siempre que sea correcta, consistente, inequívoca y el programa finalice en un período de tiempo finito. Asegúrese de indicar su convención de salida con su solución.
- Debería ser trivial determinar si la salida indica verdadero o falso sin tener que saber cuál es la cadena de entrada. Tenga en cuenta que esto no significa que los resultados verdaderos o falsos tienen que ser constantes, sin embargo, la convención de "imprimir una cadena montañosa si la cadena es montañosa y una cadena no montañosa si no es montañosa" es una laguna prohibida por razones obvias.
- Por otro lado, una convención como "arroja una excepción para falso y sale silenciosamente para verdadero" estaría bien, así como "imprime un solo carácter para verdadero y cualquier otra cosa para falso"
- Este es el código de golf, por lo que gana el programa más corto.
- Las lagunas estándar están prohibidas.
wasitacaroraratisaw
? Me parece montañoso
wasitacaroraratisaw
es realmente montañoso AFAICT
aaa
hacen que eso no funcione.
aaa
sería bueno, donde el mismo personaje debe usarse en múltiples niveles.