นี่คือปริศนาการเขียนโปรแกรมสำหรับคุณ:
รับรายการคู่ของสายอักขระและหมายเลขที่เกี่ยวข้องตัวอย่างเช่น[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]
เอาท์พุทรายการอื่นซึ่งจะมีเพียงสตริงในลักษณะดังต่อไปนี้:
จำนวนรวมของสตริงใด ๆ ควรเท่ากับจำนวนที่สอดคล้องกันในข้อมูลอินพุต
ไม่ควรมีสตริงซ้ำติดกันในลำดับและทุกสตริงควรปรากฏในรายการผลลัพธ์
การเลือกสตริงถัดไปควรทำแบบสุ่มตราบเท่าที่พวกเขาไม่ได้อยู่เหนือกฎสองข้อ แต่ละโซลูชันควรมีความน่าจะเป็นที่ไม่เป็นศูนย์ของการเลือก
0
ถ้ารวมกันไม่มีความเป็นไปได้การส่งออกควรเป็นเพียง
รายการอินพุตอาจได้รับในลำดับใด ๆ (เรียงลำดับหรือไม่เรียง) และสตริงในรายการอาจมีความยาวเท่าใดก็ได้
เอาต์พุตตัวอย่างสำหรับอินพุตตัวอย่างด้านบน 1
[A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G]
อินพุตตัวอย่าง 2:
[[A,6],[B,1],[C,1]]
เอาต์พุตสำหรับอินพุตที่สอง:
0
เนื่องจากไม่มีรายการที่เป็นไปได้ตามกฎ
ตัวอย่างอินพุต 3:
[[AC,3],[BD,2]]
ผลลัพธ์ที่ถูกต้อง: [AC,BD,AC,BD,AC]
ผลลัพธ์ที่ไม่ถูกต้อง: [AC,BD,AC,AC,BD]
หากต้องการคำชี้แจงเพิ่มเติมโปรดอย่าลังเลที่จะบอกฉันในความคิดเห็นและฉันจะทำตามทันที
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดเป็นไบต์สำหรับแต่ละภาษาที่ชนะ!