Nennen wir eine nicht leere Liste von Zeichenfolgen eine Mesa, wenn die folgenden Bedingungen erfüllt sind:
- Jede aufgelistete Zeichenfolge ist nicht leer und verwendet nur Zeichen, die in der ersten Zeichenfolge vorkommen.
- Jede aufeinanderfolgende Zeichenfolge ist genau ein Zeichen länger als die vorhergehende Zeichenfolge.
- Keine Zeichenfolge in der Liste ist eine Teilsequenz einer anderen Zeichenfolge in der Liste.
Der Begriff "Mesa" stammt aus der folgenden Visualisierung (wobei die xs verschiedene Zeichen sein sollen):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
NB: Es ist eine mathematische Tatsache, dass nur endlich viele Mesas mit einer bestimmten Zeichenfolge beginnen. Beachten Sie die Unterscheidung zwischen Teilfolge vs. String ; zB ist 'anna' eine Teilsequenz (aber keine Teilzeichenfolge) von 'banana'.
Herausforderung:
- Schreiben Sie das kürzeste Programm, das eine beliebige nicht leere alphanumerische Eingabezeichenfolge verwendet und die Anzahl der Mesas ausgibt, die mit dieser Zeichenfolge beginnen.
Eingabe (stdin):
- Jede nicht leere alphanumerische Zeichenfolge.
Ausgabe (stdout):
- Die Anzahl der Mesas, die mit der Eingabezeichenfolge beginnen.
Wertung:
- Der Gewinner ist das Programm mit der geringsten Anzahl von Bytes.
Beispiel mesas
Nur eine Mesa beginnt mit a:
a
Nur eine Mesa beginnt mit aa:
aa
Viele Mesas beginnen mit 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/aaaaaasind verschiedene Mesas.
ab,bbbals Mesa nur durch am zweiten Begriff zu stoppen. Ist das gültig? Oder müssen sie immer so lange wie möglich gemacht werden? Wenn es auch sind mehrere möglichen Umlagerungen desnthBegriffs (wiebaa,aba,aab), tun sie alle zählen als getrenntes Mesas sowie (vorausgesetzt natürlich alles , was sie an den Regeln)?