Biorąc pod uwagę zestaw liter, wypisz wszystkie ciągi znaków z tych liter. (To jest gwiazda Kleene zestawu.) Na przykład {'a','b'}
ciągi:
'', 'a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', ...
Dane wejściowe: niepusty zbiór wyraźnych liter a..z
. Mogą to być znaki lub ciągi jednoznakowe.
Wyjście: wszystkie ciągi w tych literach, w dowolnej kolejności, bez powtórzeń. Możesz używać list znaków jako ciągów znaków.
To jest nieskończona lista, więc możesz wygenerować ją przez:
- Ciągłe pisanie coraz większej liczby łańcuchów. Ciągi te można zapisać w dowolnym formacie z separacją płaską, co oznacza, że można powiedzieć, gdzie kończy się każdy ciąg, ale ciągi te nie są podzielone na grupy.
- Biorąc liczbę
n
jako dane wejściowe i wyprowadzając pierwszen
ciągi znaków w dowolnym formacie z płaską separacją - Uzyskanie każdego łańcucha z kolei z obiektu generatora
- Produkcja nieskończonego obiektu
Upewnij się, że twoja metoda w końcu generuje każdy ciąg na wyjściu, ponieważ możliwe jest wygenerowanie nieskończenie wielu ciągów ze zbioru, nigdy nie przechodząc do niektórych ciągów.
Nie możesz tego wygenerować
- Wytworzenie
n
podanego ciągu thn
- Dostarczenie wyroczni członkowskiej, która decyduje, czy dany ciąg należy do zestawu
Wbudowane są dozwolone, ale proszę wyborców o zwrócenie uwagi na odpowiedzi, które same wykonują operację, zamiast tych, które w większości opierają się na wbudowanym.