当您能够生成大写和小写的每个排列时,谁需要不区分大小写地比较事物?没有人!那就是答案。没人做到。您的任务是实现这一壮举。生成给定输入的所有可能的大写/小写排列。
输入项
一串可打印的标准ascii字符。输入不应假定全部为小写。输入将始终至少为一个字符。
输出量
输入的字符串的每个大写和小写排列(无重复)。这只能更改大小版本的字符(数字将保持不变)。每个排列必须输出为字符串或字符列表。不允许使用单例字符串列表。
例子
a1a
['a1a', 'a1A', 'A1a', 'A1A']
abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']
Hi!
['hi!', 'hI!', 'Hi!', 'HI!']
计分
这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
有趣的是,看到要处理扩展的ascii字符将花费多少额外的精力,这是一个额外的测试用例:
ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']
(您的程序不需要支持此功能)
Hi!
给出的{('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}
话可以接受吗?
Σ
是单词开头的大写版本,σ
是单词开头或中间而不是结尾ς
的小写版本,并且仅是单词结尾的小写版本。
Σ
→['Σ', 'σ', 'ς']