Appelons une liste de chaînes non vide une mesa si les conditions suivantes sont réunies:
- Chaque chaîne répertoriée n'est pas vide et utilise uniquement les caractères qui apparaissent dans la première chaîne.
- Chaque chaîne successive a exactement un caractère de plus que la chaîne précédente.
- Aucune chaîne de la liste n'est une sous- séquence de toute autre chaîne de la liste.
Le terme "mesa" vient de la visualisation comme ceci (où les xs doivent être différents caractères):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
NB: C'est un fait mathématique que seulement un nombre fini de mesas commencent par une chaîne donnée. Notez la distinction entre sous- séquence et sous-chaîne ; Par exemple, 'anna' est une sous-séquence (mais pas une sous-chaîne) de 'banana'.
Défi:
- Écrivez le programme le plus court qui prend une chaîne d'entrée alphanumérique non vide arbitraire et génère le nombre de mesas commençant par cette chaîne.
Entrée (stdin):
- Toute chaîne alphanumérique non vide.
Sortie (sortie standard):
- Nombre de mesas commençant par la chaîne d'entrée.
Notation:
- Le gagnant est le programme avec le moins d'octets.
Exemple mesas
Une seule mesa commence par a:
a
Une seule mesa commence par aa:
aa
Beaucoup de mesas commencent par ab:
ab ab ab ab (and so on)
baa aaa bbb
bbba bbaa
baaaa
aaaaaa
ab, ab/baa, ab/bbb, ab/bbb/bbaa, ab/bbb/bbaa/baaaa, ab/bbb/bbaa/baaaa/aaaaaasont différentes mesas.
ab, enbbbtant que mesa, simplement en m'arrêtant au deuxième trimestre. Est-ce que c'est valable? Ou faut-il toujours les faire le plus longtemps possible? De plus, s'il y a plusieurs réarrangements possibles dunthterme ( par exemplebaa,aba,aab), ils font tout compte comme mesas séparé, ( à condition bien sûr qu'ils suivent toutes les règles)?