Supponiamo di usare le seguenti regole per estrarre una singola stringa da un'altra stringa, una contenente solo caratteri stampabili ASCII e chiamata *stringa-. Se la stringa si esaurisce prima che il processo si interrompa, si tratta di un errore e il risultato del processo non è definito in quel caso:
- Iniziare con
d=1, s="" - Ogni volta che incontri un
*, moltiplicadper 2. Ogni volta che incontri un altro personaggio, concatenalo fino alla fine dise sottrai 1 dad. Se orad=0, fermati e ritornas
Esempi definiti :
d->d
769->7
abcd56->a
*abcd56->ab
**abcd56->abcd
*7*690->769
***abcdefghij->abcdefgh
Esempi indefiniti : (nota che anche la stringa vuota sarebbe una di queste)
*7
**769
*7*
*a*b
*
Il tuo compito è prendere una stringa e restituire la stringa più *corta che produce quella stringa.
Esempi di programma :
7->7
a->a
ab->*ab
abcd->**abcd
769->*7*69
Il programma dovrebbe gestire qualsiasi stringa contenente almeno un carattere e solo *caratteri stampabili non ASCII. Non è mai possibile restituire stringhe per le quali il processo non è definito, poiché per definizione non possono produrre QUALSIASI stringa.
Si applicano scappatoie standard e regole di I / O.
*?