Ai cần so sánh mọi thứ một cách vô cảm khi bạn có thể tạo ra mọi hoán vị của chữ hoa và chữ thường? Không một ai! Đó là câu trả lời. Không ai làm. Nhiệm vụ của bạn là đạt được kỳ tích này; tạo ra tất cả các hoán vị có thể có của chữ hoa / chữ thường cho một đầu vào nhất định.
Đầu vào
Một chuỗi các ký tự ascii tiêu chuẩn có thể in. Đầu vào không nên được coi là tất cả chữ thường. Đầu vào sẽ luôn có ít nhất một ký tự.
Đầu ra
Mọi hoán vị của chữ hoa và chữ thường cho chuỗi nhập vào (không trùng lặp). Điều này chỉ nên thay đổi các ký tự với một phiên bản nhỏ và lớn (số sẽ giữ nguyên). Mỗi hoán vị phải là đầu ra dưới dạng một chuỗi hoặc một danh sách các ký tự; danh sách các chuỗi đơn không được phép.
Ví dụ
a1a
['a1a', 'a1A', 'A1a', 'A1A']
abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']
Hi!
['hi!', 'hI!', 'Hi!', 'HI!']
Chấm điểm
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Như một phần bổ sung thú vị, bạn sẽ mất bao nhiêu nỗ lực để xử lý các ký tự ascii mở rộng, đây là một trường hợp thử nghiệm bổ sung:
ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']
(chương trình của bạn không cần hỗ trợ này)
Hi!
đưa ra {('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}
sẽ được chấp nhận?
Σ
phiên bản chữ hoa ở đầu từ, σ
là phiên bản chữ thường ở đầu hoặc ở giữa nhưng không phải là cuối của từ và ς
là phiên bản chữ thường ở cuối từ.
Σ
→['Σ', 'σ', 'ς']