Défi
Pour ce défi, une chaîne montagneuse est celle qui est conforme à la règle de grammaire M: x(Mx)*
où à chaque production, tous les x sont du même caractère. En retrait, une chaîne montagneuse pourrait ressembler à ceci:
A
B
C
D
C
E
F
E
C
B
A
Comme vous pouvez le voir, cela ressemble un peu à une montagne de côté.
Définition formelle
- Tout personnage
a
est montagneux. - Si
S
est une chaîne montagneuse eta
est un caractère, alorsaSa
est montagneux, où la juxtaposition représente la concaténation de chaînes. - Si
aSa
etaTa
sont des cordes montagneuses, alorsaSaTa
est une chaîne montagneuse. Notez que cette règle implique que ce modèle est valable pour un nombre illimité de répétitions. (c.-àaSaTaUa
- d .aSaTaUaVa
,aSaTaUaVaWa
... sont tous montagneux.)
Exemples
Tous les palindromes de longueur impaire sont montagneux, par exemple:
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
est un exemple moins 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
Exemples de sorties
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
Règles
- Ceci est un problème de décision, donc toute représentation de vrai ou faux est une sortie valide tant qu'elle est correcte, cohérente, sans ambiguïté et que le programme se termine dans un laps de temps fini. Assurez-vous d'indiquer votre convention de sortie avec votre solution.
- Il devrait être trivial de déterminer si la sortie indique vrai ou faux sans avoir à connaître la chaîne d'entrée. Notez que cela ne signifie pas que les sorties véridiques ou fausses doivent être constantes, cependant la convention de "imprimer une chaîne montagneuse si la chaîne est montagneuse et une chaîne non montagneuse sinon montagneuse" est une échappatoire interdite pour des raisons évidentes.
- D'un autre côté, une convention comme «lève une exception pour faux et quitte silencieusement pour vrai» serait bien, ainsi que «imprime un seul caractère pour vrai et rien d'autre pour faux»
- C'est le golf de code, donc le programme le plus court gagne.
- Les failles standard sont interdites.
wasitacaroraratisaw
? Cela me semble ridicule
wasitacaroraratisaw
est en effet montagneux AFAICT
aaa
ça ne fonctionnent pas.
aaa
serait bien, où le même personnage doit être utilisé à plusieurs niveaux.