चुनौतियों पर वापस जाएँ
मध्यम 0 हल किए गए 0% स्वीकृति

टूर्नामेंट स्टैंडिंग्स

मैच रिकॉर्ड्स से टीमों की रैंकिंग करें।

आप क्या सीखेंगे

  • टेक्स्ट से मैच के परिणाम पार्स करना
  • डिक्शनरी में हर टीम के अंक जोड़ना
  • अंकों से, फिर नाम से सॉर्ट करना

समस्या

मैच रिकॉर्ड्स से टीमों की रैंकिंग करें। प्रत्येक रिकॉर्ड का स्वरूप First;Second;result होता है, जिसमें कोई अतिरिक्त स्पेस नहीं होती। परिणाम (result) First टीम के दृष्टिकोण से win, loss, या draw में से एक होता है। जीतने पर 3 अंक, ड्रॉ पर प्रत्येक टीम को 1 अंक, और हारने पर 0 अंक मिलते हैं। प्रत्येक टीम के लिए खेले गए मैच, जीत, ड्रॉ, हार और कुल अंक गिनें, जो भी टीम रिकॉर्ड्स में आती है। टीमों को अंकों के घटते क्रम में, फिर टीम नाम के बढ़ते (ASCII क्रम) में सॉर्ट करें।

प्रत्येक टीम के लिए एक सेमीकोलन-सेपरेटेड पंक्ति लौटाएँ: Name;Played;Won;Drawn;Lost;Points। हेडर या अलाइनमेंट के लिए कोई स्पेस न जोड़ें।

tournament_standings(matches) को इम्प्लीमेंट करें।

इनपुट

matches: किसी भी क्रम में मैच रिकॉर्ड्स।

आउटपुट

ऊपर बताए गए छह फ़ील्ड्स के साथ रैंक की गई पंक्तियाँ लौटाएँ। संख्याएँ बिना लीडिंग ज़ीरो के लिखें।

सीमाएँ

0…10,000 मान्य रिकॉर्ड्स। टीम नाम 1…30 ASCII अक्षरों के होते हैं और केस-सेंसिटिव होते हैं। प्रत्येक मैच में दो अलग-अलग नाम होते हैं। रिपीटेड मैच अलग-अलग गेम माने जाएँगे। खाली इनपुट पर खाली परिणाम दें।

उदाहरण

उदाहरण 1
इनपुट:
matches = ["Falcons;Bears;win", "Bears;Owls;draw"]

अपेक्षित आउटपुट:
expected = ["Falcons;1;1;0;0;3", "Bears;2;0;1;1;1", "Owls;1;0;1;0;1"]
इनपुट:
std::vector<std::string> matches = {"Falcons;Bears;win", "Bears;Owls;draw"};

अपेक्षित आउटपुट:
std::vector<std::string> expected = {"Falcons;1;1;0;0;3", "Bears;2;0;1;1;1", "Owls;1;0;1;0;1"};
इनपुट:
string[] matches = new string[] {"Falcons;Bears;win", "Bears;Owls;draw"};

अपेक्षित आउटपुट:
string[] expected = new string[] {"Falcons;1;1;0;0;3", "Bears;2;0;1;1;1", "Owls;1;0;1;0;1"};

व्याख्या

Falcons को उनकी जीत के लिए 3 अंक मिले। Bears और Owls को ड्रॉ के लिए 1-1 अंक मिले, इसलिए Bears नाम के अनुसार पहले आते हैं। Bears ने दो बार खेला और एक बार हारे।

उदाहरण 2
इनपुट:
matches = ["Zebras;Ants;loss"]

अपेक्षित आउटपुट:
expected = ["Ants;1;1;0;0;3", "Zebras;1;0;0;1;0"]
इनपुट:
std::vector<std::string> matches = {"Zebras;Ants;loss"};

अपेक्षित आउटपुट:
std::vector<std::string> expected = {"Ants;1;1;0;0;3", "Zebras;1;0;0;1;0"};
इनपुट:
string[] matches = new string[] {"Zebras;Ants;loss"};

अपेक्षित आउटपुट:
string[] expected = new string[] {"Ants;1;1;0;0;3", "Zebras;1;0;0;1;0"};

व्याख्या

हार Zebras के दृष्टिकोण से है: Ants ने जीत हासिल की और 3 अंक मिले। Zebras को 0 अंक मिले।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Match list में दिखने वाली हर team के stats जमा करो, भले वह सिर्फ हारती हो।

संकेत 2

हर record दो teams को एक साथ update करता है, और result हमेशा first team's perspective से होता है।

संकेत 3

Totals collect करने के बाद points descending और फिर team name ascending के हिसाब से sort करो।

अपेक्षित जटिलता

समय O(m log t), अतिरिक्त स्थान O(t)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।