Wer muss die Groß- und Kleinschreibung unsensibel vergleichen, wenn Sie in der Lage sind, jede Permutation von Groß- und Kleinschreibung zu generieren? Niemand! Das ist die Antwort. Niemand tut. Ihre Aufgabe ist es, dieses Kunststück zu erreichen; Generieren Sie alle möglichen Permutationen in Groß- / Kleinschreibung für eine bestimmte Eingabe.
Eingang
Eine Zeichenfolge aus druckbaren Standard-ASCII-Zeichen. Es sollte nicht davon ausgegangen werden, dass die Eingabe nur in Kleinbuchstaben erfolgt. Die Eingabe besteht immer aus mindestens einem Zeichen.
Ausgabe
Jede Permutation von Groß- und Kleinschreibung für die eingegebene Zeichenfolge (keine Duplikate). Dies sollte nur Zeichen mit einer kleinen und einer großen Version ändern (Zahlen bleiben gleich). Jede Permutation muss als Zeichenfolge oder Liste von Zeichen ausgegeben werden. Listen von Singleton-Strings sind nicht erlaubt.
Beispiele
a1a
['a1a', 'a1A', 'A1a', 'A1A']
abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']
Hi!
['hi!', 'hI!', 'Hi!', 'HI!']
Wertung
Das ist Code-Golf , also gewinnt die kürzeste Antwort (in Bytes).
Sehen Sie sich zum Spaß an, wie viel zusätzlicher Aufwand erforderlich ist, um die erweiterten ASCII-Zeichen zu verarbeiten. Hier ist ein zusätzlicher Testfall:
ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']
(Ihr Programm muss dies nicht unterstützen)
Hi!
gab {('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}
wäre das akzeptabel?
Σ
die Großbuchstabenversion am Anfang eines Wortes, σ
die Kleinbuchstabenversion am Anfang oder in der Mitte, aber nicht am Ende eines Wortes und ς
die Kleinbuchstabenversion nur am Ende eines Wortes ist.
Σ
→['Σ', 'σ', 'ς']