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

पायथन में K सबसे ज्यादा देखे जाने वाले शो की कुल अवधि खोजने का कार्यक्रम

मान लीजिए कि हमारे पास शो नामक स्ट्रिंग्स की सूची की एक सूची है, पूर्णांकों की एक सूची भी है जिसे ड्यूरेशन कहा जाता है, और दूसरा मान k, यहां दिखाता है [i] और अवधि [i] एक शो का प्रतिनिधित्व करते हैं और इसकी अवधि ith आदमी द्वारा देखी जाती है, हमारे पास है k सबसे ज्यादा देखे जाने वाले शो की कुल अवधि का पता लगाने के लिए।

इसलिए, यदि इनपुट शो की तरह है =["बीजीटी", "जैक जम्पर", "द बीजीटी", "जोकर्स कंपनी", "म्यूजिक मैजिक"] अवधि =[10, 8, 10, 18, 9] के =2 है, तो आउटपुट 38 होगा, क्योंकि शीर्ष 2 सबसे अधिक देखे जाने वाले शो "जोकर्स कंपनी" और "द बीजीटी" हैं और कुल अवधि 18 और 10 + 10 =20 है।

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

  • अगर शो खाली है या अवधि खाली है या k 0 है, तो

    • वापसी 0

  • d :=एक खाली शब्दकोश

  • मेरे लिए 0 से लेकर शो के आकार तक के लिए, करें

    • d[दिखाता है[i]] :=d[दिखाता है[i]] + अवधि[i]

  • एल:=एक नई सूची

  • प्रत्येक i in d के लिए, करें

    • l के अंत में d[i] डालें

  • सूची l को उल्टे क्रम में क्रमित करें

  • मैं :=0

  • उत्तर:=0

  • जबकि मैं <के, करता हूं

    • उत्तर:=उत्तर + एल[i]

    • मैं :=मैं + 1

  • वापसी उत्तर

उदाहरण

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

from collections import defaultdict
def solve(shows, durations, k):
   if not shows or not durations or not k:
      return 0

   d = defaultdict(int)

   for i in range(len(shows)):
      d[shows[i]] += durations[i]

   l = []
   for i in d:
      l.append(d[i])
   l.sort(reverse=True)
   i = 0
   answer = 0
   while i < k:
      answer += l[i]
      i += 1
   return answer

shows = ["The BGT", "Jack jumper", "The BGT", "Jokers Company",
"Music magic"]
durations = [10, 8, 10, 18, 9]
k = 2
print(solve(shows, durations, k))

इनपुट

["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"], [10, 8, 10, 18, 9], 2

आउटपुट

38

  1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं

  1. पायथन का उपयोग करके सर्कुलर ट्रैक में सबसे अधिक देखे जाने वाले सेक्टर को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक संख्या n और एक सरणी है जिसे राउंड कहा जाता है। हमारे पास एक गोलाकार ट्रैक है जिसमें 1 से n तक लेबल किए गए n विभिन्न सेक्टर हैं। अब मान लीजिए इस ट्रैक पर एक रेस होगी, रेस में मी अलग-अलग राउंड होंगे। छठा दौर सेक्टर राउंड [i - 1] से शुरू होता है और सेक्टर राउंड [i] पर समाप्त ह

  1. पायथन में सभी शिपमेंट को पूरा करने के लिए कुल लागत खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास पोर्ट नामक सूचियों की एक सूची है, जहां पोर्ट [i] उन पोर्ट की सूची का प्रतिनिधित्व करता है जिनसे पोर्ट i जुड़ा हुआ है। हमारे पास शिपमेंट्स नामक सूचियों की एक और सूची भी है जहां अनुक्रम की प्रत्येक सूची [i, j] जो दर्शाती है कि पोर्ट i से पोर्ट j तक शिपमेंट अनुरोध है। और पोर्ट I