Geben Sie alle Zeichenfolgen aus, die aus diesen Buchstaben bestehen, und geben Sie eine Reihe von Buchstaben aus. (Dies ist der Kleene-Star des Sets.) Beispielsweise {'a','b'}
lauten die Zeichenfolgen wie folgt :
'', 'a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', ...
Eingabe: Eine nicht leere Sammlung unterschiedlicher Buchstaben a..z
. Dies können Zeichen oder Einzelzeichenketten sein.
Ausgabe: Alle Zeichenfolgen in diesen Buchstaben, in beliebiger Reihenfolge, ohne Wiederholungen. Sie können Listen von Zeichen als Zeichenfolgen verwenden.
Dies ist eine unendliche Liste, sodass Sie sie folgendermaßen ausgeben können:
- Laufen für immer und schreiben immer mehr Strings. Diese Zeichenfolgen können in jedem flach getrennten Format geschrieben werden. Dies bedeutet, dass Sie erkennen können, wo die einzelnen Zeichenfolgen enden, die Zeichenfolgen jedoch nicht in Gruppen unterteilt sind.
- Nehmen Sie eine Zahl
n
als Eingabe und geben Sie die erstenn
Zeichenfolgen in einem beliebigen, flach getrennten Format aus - Jede Zeichenfolge wird nacheinander von einem Generatorobjekt ausgegeben
- Ein unendliches Objekt erzeugen
Stellen Sie sicher, dass Ihre Methode letztendlich alle Zeichenfolgen in der Ausgabe erzeugt, da es möglich ist, unendlich viele Zeichenfolgen aus der Menge zu erzeugen, ohne auf bestimmte Zeichenfolgen zuzugreifen.
Sie können es nicht ausgeben von
- Produziere die
n
angegebene Saiten
- Bereitstellung eines Mitgliedschaftsorakels, das entscheidet, ob eine bestimmte Zeichenfolge zur Gruppe gehört
Built-ins sind erlaubt, aber ich bitte die Wähler, Antworten zu beachten, die die Operation selbst implementieren, anstatt solche, die sich meistens auf ein eingebautes System stützen.