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

पायथन में K सबसे अधिक देखे गए शो की कुल अवधि ढूंढना


मान लीजिए हमारे पास स्ट्रिंग्स की लिस्ट की लिस्ट shows है, एक इंटीजर्स की लिस्ट durations है, और एक और मान k है, यहां shows[i] और durations[i] iवें व्यक्ति द्वारा देखे गए शो और उसकी अवधि को दर्शाते हैं, हमें k सबसे अधिक देखे गए शो की कुल अवधि ढूंढनी है।

उदाहरण के लिए, यदि इनपुट है shows = ["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"], durations = [10, 8, 10, 18, 9], k = 2, तो आउटपुट होगा 38, क्योंकि टॉप 2 सबसे अधिक देखे गए शो हैं "Jokers Company" और "The BGT" और कुल अवधि 18 और 10 + 10 = 20 है।

समाधान दृष्टिकोण

प्रत्येक शो की कुल अवधि जोड़ने के लिए एक डिक्शनरी का उपयोग करें, फिर मानों को अवरोही क्रम में सॉर्ट करें और टॉप k का योग करें।

  • यदि shows या durations खाली है या k=0, तो 0 लौटाएं।
  • defaultdict(int) का उपयोग करके प्रत्येक शो की अवधि जमा करें।
  • मानों को एक लिस्ट में निकालें, रिवर्स सॉर्ट करें।
  • पहले k मानों का योग करें।

पायथन कार्यान्वयन

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. पायथन में बहुभुज का परिमाप खोजने का प्रोग्राम पायथन में बहुभुज का परिमाप खोजने का प्रोग्राम

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

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

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

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

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