大文字と小文字のすべての順列を生成できる場合、大文字と小文字を区別せずに比較する必要があるのは誰ですか?誰も!それが答えです。誰もしません。あなたの仕事はこの偉業を達成することです。与えられた入力に対して大文字/小文字のすべての可能な順列を生成します。
入力
印刷可能な標準ASCII文字列。入力をすべて小文字と見なしてはなりません。入力は常に少なくとも1文字です。
出力
入力された文字列の大文字と小文字のすべての置換(重複なし)。これは、小さいバージョンと大きいバージョンの文字のみを変更する必要があります(数字は同じままです)。各順列は、文字列または文字のリストとして出力する必要があります。シングルトン文字列のリストは許可されていません。
例
a1a
['a1a', 'a1A', 'A1a', 'A1A']
abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']
Hi!
['hi!', 'hI!', 'Hi!', 'HI!']
得点
これはcode-golfであるため、最短回答(バイト単位)が優先されます。
おもしろいので、拡張アスキー文字を処理するのにどれだけの労力がかかるかを見てみましょう。追加のテストケースを次に示します。
ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']
(プログラムはこれをサポートする必要はありません)
Hi!
与えられた場合、それは{('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}
受け入れられますか?
Σ
、単語の先頭の大文字バージョンであり、単語σ
の先頭または中間ς
では小文字バージョンですが、単語の末尾ではないこと、および単語の末尾のみでの小文字バージョンです。
Σ
→['Σ', 'σ', 'ς']