แรงบันดาลใจจากคำถามนี้กองมากเกิน: เรียงลำดับรายการ: ตัวเลขในจากน้อยไปมากตัวอักษรในจากมากไปน้อย งานของคุณคือการแก้ปัญหาต่อไปนี้และเนื่องจากเป็นcode-golfคุณควรทำอย่างน้อยไบต์ให้มากที่สุด
คุณควรใช้รายการของวัตถุที่เป็น input ที่มีตัวอักษร (รูปแบบที่เหมาะสมใด ๆ : string
, char
ฯลฯ ) และตัวเลข คุณควรเรียงลำดับตัวเลขจากมากไปหาน้อยและเรียงตามลำดับจากมากไปน้อย อย่างไรก็ตามคุณควรเก็บตัวอักษรไว้ในตำแหน่งตัวอักษรและตัวเลขในตำแหน่งตัวเลข ตัวอย่างเช่นหากรายการคือ:
[L, D, L, L, D, L]
รายการเอาท์พุทควรอยู่ในรูปแบบของ:
[L, D, L, L, D, L]
Workthrough
การป้อนข้อมูล: ['a', 2, 'b', 1, 'c', 3]
- เรียงลำดับตัวเลขจากน้อยไปหามาก:
[1, 2, 3]
- เรียงตัวอักษรตามลำดับจากมากไปน้อย:
['c', 'b', 'a']
- เข้าร่วมพวกเขากลับ แต่รักษาลำดับเดิม:
['c', 1', 'b', 2, 'a', 3]
กฎระเบียบ
- รายการจะประกอบด้วยตัวอักษรและตัวเลขเท่านั้น
- รายการอาจว่างเปล่า
- รายการอาจประกอบด้วยตัวอักษรหรือตัวเลขเท่านั้น
- หากภาษาของคุณไม่รองรับอาเรย์แบบผสมคุณสามารถใช้ตัวอักษรแทนตัวเลขได้ โปรดทราบว่าหากภาษาของคุณรองรับสิ่งนี้คุณต้องใช้ประเภทผสม
- ตัวอักษรจะเป็น
[a-z]
หรือ[A-Z]
คุณอาจเลือกที่หนึ่ง - ตัวอักษรจะถูกจัดเรียงเป็น
a
ถูกต่ำสุดเป็นที่สูงที่สุดคือz
a = 1, z = 26
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- I / O อาจเป็นวิธีมาตรฐานรวมถึงเป็นสายอักขระ
กรณีทดสอบ
[5, 'a', 'x', 3, 6, 'b'] -> [3, 'x', 'b', 5, 6, 'a']
[ 3, 2, 1] -> [ 1, 2, 3 ]
[ 'a', 'b', 'c' ] -> [ 'c', 'b', 'a' ]
[] -> []
[ 2, 3, 2, 1 ] -> [1, 2, 2, 3]
นี่คือcode-golfคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!