Chiamiamo un elenco non vuoto di stringhe una mesa se valgono le seguenti condizioni:
- Ogni stringa elencata non è vuota e utilizza solo caratteri presenti nella prima stringa.
- Ogni stringa successiva è esattamente più lunga di un carattere rispetto alla stringa precedente.
- Nessuna stringa nell'elenco è una sottosequenza di qualsiasi altra stringa nell'elenco.
Il termine "mesa" deriva dalla visualizzazione in questo modo (dove i xs devono essere vari personaggi):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
NB: È un fatto matematico che solo in modo finito molti mesas iniziano con una data stringa. Si noti la distinzione tra sottosequenza vs. sottostringa ; ad esempio, "anna" è una sottosequenza (ma non una sottostringa) di "banana".
Sfida:
- Scrivi il programma più breve che accetta una stringa di input alfanumerica non vuota arbitraria e genera il numero di mesas che iniziano con quella stringa.
Input (stdin):
- Qualsiasi stringa alfanumerica non vuota.
Uscita (stdout):
- Il numero di mesas che iniziano con la stringa di input.
punteggio:
- Il vincitore è il programma con il minor numero di byte.
Esempio mesas
Solo una mesa inizia con a:
a
Solo una mesa inizia con aa:
aa
Molti mesas iniziano con 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/aaaaaasono diversi mesas.
ab,bbbcome mesa, fermarmi al secondo mandato. È valido? O devono sempre essere fatti il più a lungo possibile? Inoltre, se ci sono più possibili riarrangiamenti delnthtermine (ad esempiobaa,aba,aab), fanno tutti contano come mesas separati così (a condizione, naturalmente, tutti seguono le regole)?