इस चुनौती में, आपको दो चीजें दी जाती हैं:
- एक स्ट्रिंग लंबाई,
N
- तार की एक सूची
L
, प्रत्येक, एक निर्दिष्ट बिंदु मान के साथ। कोई भी स्ट्रिंग जो पास नहीं है, उसका मान 0 अंक है
आपको लंबाई की एक स्ट्रिंग का निर्माण करने की आवश्यकता है N
जैसे कि सभी प्रतिस्थापन बिंदुओं का योग यथासंभव बड़ा है।
उदाहरण के लिए:
5 [("ABC", 3), ("DEF", 4), ("CDG", 2)]
आउटपुट चाहिए
ABCDG
क्योंकि अंक ( ABC
और CDG
) वाले दो पदार्थों में कुल 5 अंक हैं, और कोई अन्य संभावित निर्माण 5 या अधिक अंक नहीं दे सकता है।
सबस्ट्रिंग को एक स्ट्रिंग में कई बार इस्तेमाल किया जा सकता है, और ओवरलैप कर सकते हैं। आप मान सकते हैं कि अंक हमेशा सकारात्मक होंगे, सबस्ट्रिंग की लंबाई 1 से N
वर्णों की लंबाई के बीच होगी , और वह N > 0
। यदि कई निर्माण अधिकतम हैं, तो उनमें से किसी एक को प्रिंट करें।
आपका कार्यक्रम उचित समय पर चलना चाहिए (प्रत्येक उदाहरण के लिए एक मिनट से अधिक नहीं):
1 [("A", 7), ("B", 4), ("C", 100)] => C
2 [("A", 2), ("B", 3), ("AB", 2)] => AB
2 [("A", 1), ("B", 2), ("CD", 3)] => BB
2 [("AD", 1), ("B", 2), ("ZB", 3)] => ZB
3 [("AB", 2), ("BC", 1), ("CA", 3)] => CAB
3 [("ABC", 4), ("DEF", 4), ("E", 1)] => DEF
4 [("A", 1), ("BAB", 2), ("ABCD", 3)] => AAAA or ABAB or BABA or ABCD
5 [("A", 1), ("BAB", 2), ("ABCD", 3)] => BABCD or BABAB
5 [("ABC", 3), ("DEF", 4), ("CDG", 2)] => ABCDG
5 [("AB", 10), ("BC", 2), ("CA", 2)] => ABCAB
6 [("AB", 10), ("BC", 2), ("CA", 2)] => ABABAB
8 [("AA", 3), ("BA", 5)] => BAAAAAAA
10 [("ABCDE", 19), ("ACEBD", 18), ("ABEDC", 17), ("BCEDA", 16), ("EBDAC", 15), ("BACD", 14), ("CADB", 13), ("ABDC", 12), ("CABD", 11), ("EBDC", 10), ("ACE", 9), ("CBA", 8), ("AEC", 7), ("BE", 6), ("AE", 5), ("DC", 4), ("BA", 3), ("A", 2), ("D", 1)]
=> ACEBDACEBD
यह एक कोड-गोल्फ है , इसलिए अपनी पसंदीदा भाषा में अपना सबसे छोटा उत्तर तैयार करें!
DEF
टपल एक अल्पविराम लापता