1
การก่อสร้างสตริงย่อยสูงสุด
ในการท้าทายนี้คุณจะได้รับสองสิ่ง: ความยาวสตริง N รายการสตริงLแต่ละอันมีค่าจุดที่กำหนด สตริงใด ๆ ที่ไม่ได้ผ่านมีค่าจุดเป็น 0 คุณต้องสร้างสตริงที่มีความยาวNเพื่อให้ผลรวมของคะแนนย่อยทั้งหมดมีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้ ตัวอย่างเช่น: 5 [("ABC", 3), ("DEF", 4), ("CDG", 2)] ควรส่งออก ABCDG เนื่องจากสตริงย่อยทั้งสองที่มีคะแนน ( ABCและCDG) มีทั้งหมด 5 คะแนนและไม่มีสิ่งก่อสร้างอื่นที่เป็นไปได้ที่จะให้ 5 คะแนนขึ้นไป สตริงย่อยสามารถใช้ได้หลายครั้งในสตริงและสามารถทับซ้อนกันได้ คุณสามารถคิดว่าจุดที่จะเป็นบวกความยาวย่อยจะอยู่ระหว่าง 1 ถึงNlongs N > 0ตัวอักษรและว่า หากสิ่งปลูกสร้างหลายรายการมีขนาดใหญ่สุดให้พิมพ์หนึ่งในนั้น โปรแกรมของคุณต้องทำงานในเวลาที่เหมาะสม (ไม่เกินหนึ่งนาทีสำหรับตัวอย่างแต่ละตัวอย่าง): 1 [("A", 7), ("B", 4), ("C", 100)] => C 2 [("A", 2), ("B", …