สนุกกับสตริงและตัวเลข
นี่คือปริศนาการเขียนโปรแกรมสำหรับคุณ: รับรายการคู่ของสายอักขระและหมายเลขที่เกี่ยวข้องตัวอย่างเช่น[[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] หากต้องการคำชี้แจงเพิ่มเติมโปรดอย่าลังเลที่จะบอกฉันในความคิดเห็นและฉันจะทำตามทันที นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดเป็นไบต์สำหรับแต่ละภาษาที่ชนะ!