Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

टीमों की अंतिम रैंकिंग उच्चतम से निम्नतम क्रम में ज्ञात करने का पायथन प्रोग्राम


मान लीजिए हमारे पास votes नामक स्ट्रिंग्स की एक सूची है, यहां प्रत्येक प्रविष्टि लोअरकेस अक्षरों में है और वे उम्मीदवारों पर वोट को उच्चतम से निम्नतम वरीयता के क्रम में दर्शाते हैं। यहां एक उम्मीदवार की रैंक पहले उच्चतम वरीयता पर प्राप्त वोटों की संख्या पर निर्भर करती है। अब यदि टाई हैं, तो हम अगली उच्चतम वरीयता पर प्राप्त वोटों की संख्या की जांच करेंगे, और इसी तरह। यदि अभी भी टाई हैं, तो उन्हें वर्णानुक्रम में रैंक किया जाएगा। इसलिए हमें उच्चतम से निम्नतम रैंक के क्रम में टीमों की अंतिम रैंकिंग ढूंढनी है।

उदाहरण के लिए, यदि इनपुट votes = ["zyx", "zxy", "xyz"] है, तो आउटपुट "zxy" होगा, क्योंकि z को उच्चतम वरीयता पर सबसे अधिक वोट मिले, इसलिए यह पहले स्थान पर है। फिर x को दूसरी सबसे अधिक उच्चतम वरीयता के वोट मिले, और y को कोई उच्चतम वरीयता वोट नहीं मिला।

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:

  • count := votes में स्ट्रिंग्स की लंबाई
  • cand := एक खाली मैप जहां प्रत्येक कुंजी count आकार की सूची होगी, और प्रारंभ में वे 0 से भरी होंगी
  • प्रत्येक v के लिए votes में, करें
    • प्रत्येक इंडेक्स i और मान c के लिए v में, करें
      • cand[c, i] को 1 से बढ़ाएं
    • cand आइटम्स को मान के आधार पर अवरोही क्रम में क्रमबद्ध करें, जब मान समान हों, तो उन्हें वर्णानुक्रम में क्रमबद्ध करें
    • क्रमबद्ध तत्वों को जोड़कर एक स्ट्रिंग लौटाएं।

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

उदाहरण

from collections import defaultdict
class Solution:
    def solve(self, votes):
        count = len(votes[0])
        cand = defaultdict(lambda: [0] * count)
        for v in votes:
            for i, c in enumerate(v):
                cand[c][i] += 1
        return "".join(sorted(cand.keys(), key=lambda x: (cand[x], -ord(x)), reverse=True))

ob = Solution()
votes = ["zyx", "zxy", "xyz"]
print(ob.solve(votes))

इनपुट

["zyx", "zxy", "xyz"]

आउटपुट

zxy

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक मैट्रिक्स दिए जाने पर, हमें ट्रांसपोज़ को उसी मैट्रिक्स में स्टोर करना होगा और इसे प्रदर्शित करना होगा। मैट्रिक्स का ट्रांसपोज़ पंक्तियों को कॉलम में और कॉलम को पंक्तियों में बदलकर

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें