대문자와 소문자의 모든 순열을 생성 할 수있을 때 대소 문자를 구분하지 않고 비교해야하는 사람은 누구입니까? 아무도! 그게 답입니다. 아무도 없습니다. 당신의 임무는이 위업을 달성하는 것입니다; 주어진 입력에 대해 대문자 / 소문자의 가능한 모든 순열을 생성합니다.
입력
인쇄 가능한 표준 ASCII 문자 문자열입니다. 입력이 모두 소문자로 가정해서는 안됩니다. 입력은 항상 하나 이상의 문자입니다.
산출
입력 된 문자열에 대한 대문자와 소문자의 모든 순열 (중복 없음). 작고 큰 버전의 문자 만 변경해야합니다 (숫자는 동일하게 유지됨). 각 순열은 문자열 또는 문자 목록으로 출력되어야합니다. 싱글 톤 문자열 목록은 허용되지 않습니다.
예
a1a
['a1a', 'a1A', 'A1a', 'A1A']
abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']
Hi!
['hi!', 'hI!', 'Hi!', 'HI!']
채점
이것은 code-golf 이므로 가장 짧은 답변 (바이트)이 이깁니다.
재미있는 추가로 확장 ASCII 문자를 처리하는 데 얼마나 많은 노력이 필요한지 확인하십시오. 여기에는 추가 테스트 사례가 있습니다.
ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']
(귀하의 프로그램은 이것을 지원할 필요가 없습니다)
Hi!
준 {('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}
것을 받아 들일 것입니까?
Σ
은 단어의 시작 부분에 대문자 버전이 있고, 단어 σ
의 시작 부분이나 중간에 있지만 ς
소문자 버전이 아니라 소문자 버전이며 단어 끝에 만있는 소문자 버전이라는 것입니다.
Σ
→['Σ', 'σ', 'ς']