Dato un insieme di lettere, genera tutte le stringhe fatte di quelle lettere. (Questa è la stella di Kleene del set.) Ad esempio, per {'a','b'}, le stringhe sono:
'', 'a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', ...
Input: una raccolta non vuota di lettere distinte a..z. Questi possono essere caratteri o stringhe a carattere singolo.
Output: tutte le stringhe in quelle lettere, in qualsiasi ordine, senza ripetizioni. È possibile utilizzare elenchi di caratteri come stringhe.
Questo è un elenco infinito, quindi puoi produrlo come segue:
- Correre per sempre scrivendo sempre più stringhe. Queste stringhe possono essere scritte in qualsiasi formato separato piatto, il che significa che puoi dire dove finisce ogni stringa, ma le stringhe non sono suddivise in gruppi.
- Prendendo un numero
ncome input e producendo le primenstringhe in qualsiasi formato separato piatto - Rendere ogni stringa a turno da un oggetto generatore
- Produrre un oggetto infinito
Assicurati che il tuo metodo alla fine produca ogni stringa nell'output, poiché è possibile produrre infinitamente molte stringhe dal set senza mai arrivare ad alcune stringhe.
Si può non uscita dal
- Produrre la
nstringa datan - Fornire un oracolo di appartenenza che decide se una determinata stringa appartiene all'insieme
Gli built-in sono consentiti, ma chiedo agli elettori di prestare attenzione alle risposte che implementano l'operazione su quelle che si basano principalmente su un built-in.