สำหรับจุดประสงค์ของคำถามนี้สำรับไพ่ในรูปแบบนี้:
[
"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS",
"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD",
"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH",
"AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC",
"J", "J"
]
การ์ดจะถูกจัดรูปแบบเป็นค่าเสมอตามด้วยชุดสูท เช่นAS
Ace of Spades J เดี่ยวสองตัวคือ Jokers เราต้องการสับไพ่สำรับนี้ แต่การสับเปลี่ยนต้องเป็นสุดยอด™
สุดยอด Shuffle ™เป็นหนึ่งใน:
- ไม่มีไพ่สองใบ (ยกเว้นโจ๊กเกอร์) ของชุดเดียวกันอยู่ติดกัน
- ไม่มีการ์ด (ยกเว้น Jokers) ติดกับหนึ่งในค่าเดียวกัน
- ไม่มีไพ่ (ยกเว้น Jokers) ติดกับหนึ่งในค่าที่อยู่ติดกัน (สูงกว่าหรือต่ำกว่าหนึ่งในลำดับนี้ A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A. สังเกตว่าเอซไม่สามารถอยู่ติดกับทั้ง 2 หรือคิง)
- โจ๊กเกอร์สามารถอยู่ในตำแหน่งใดก็ได้
- คำนิยามของ Superb Shuffle ™ ไม่ต้องการให้การ์ดเรียงตามลำดับที่แตกต่างกันในแต่ละครั้งที่สับไพ่ ซึ่งไม่ได้ยอดเยี่ยมมาก แต่เป็น Superb ™
เพราะนั่นคือสุดยอด™
ตัวอย่างอาจเป็น:
[
"AS", "5D", "9H", "KC", "2D", "6H", "10C", "QS", "3H", "7C", "9S",
"KD", "4C", "6S", "10D", "AC", "3S", "7D", "JH", "J", "4D", "8H",
"QC", "AD", "5H", "9C", "JS", "2H", "6C", "8S", "QD", "3C", "5S",
"9D", "KH", "2S", "6D", "10H", "J", "3D", "7H", "JC", "KS", "4H",
"8C", "10S", "AH", "5C", "7S", "JD", "2C", "4S", "8D", "QH"
]
ความท้าทาย:
- เขียนโค้ดบางอย่างเพื่อดำเนินการสับเปลี่ยนที่ยอดเยี่ยม
- ใช้ภาษาใดก็ได้
- อินพุตสามารถเป็นได้ทั้ง :
- สำรับไพ่ตามที่อธิบายไว้ข้างต้นในลำดับเดียวกันเป็นอาร์เรย์หรือโครงสร้างรายการอื่น ๆ
- ไม่มีการป้อนข้อมูล (รหัสจะสร้างสำรับไพ่ตามลำดับ)
- ผลลัพธ์จะต้องเป็นสำรับไพ่เต็มรูปแบบใน Superb Shuffle ™ตามที่อธิบายไว้ข้างต้น
- พยายามดำเนินการ Superb Shuffle ™ของคุณในจำนวนไบต์ที่น้อยที่สุด
- ต้องการลิงค์ไปยังล่ามออนไลน์เช่นTry It Onlineแต่เป็นทางเลือก
มีความสุขในการสับ!
T
แทน10
?