ใครบ้างที่จะต้องเปรียบเทียบสิ่งต่าง ๆ ในกรณีที่คุณไม่สามารถสร้างการเปลี่ยนแปลงของตัวพิมพ์ใหญ่และตัวพิมพ์เล็กได้ ไม่มีใคร! นั่นคือคำตอบ ไม่มีใครทำ งานของคุณคือการบรรลุผลสำเร็จนี้ สร้างการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กสำหรับอินพุตที่กำหนด
อินพุต
สตริงของอักขระ 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', '!')}
นั่นจะเป็นที่ยอมรับ?
Σ
คือตัวพิมพ์ใหญ่ที่จุดเริ่มต้นของคำσ
คือเวอร์ชันตัวพิมพ์เล็กที่จุดเริ่มต้นหรือตรงกลาง แต่ไม่ใช่จุดสิ้นสุดของคำและς
เป็นตัวพิมพ์เล็กในตอนท้ายของคำเท่านั้น
Σ
→['Σ', 'σ', 'ς']