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

पायथन में कुल अवधि 60 से विभाज्य गानों के जोड़े


मान लीजिए हमारे पास गानों की एक सूची है, i-वें गाने की अवधि time[i] सेकंड है। हमें उन गानों के जोड़ों की संख्या ढूंढनी है जिनके लिए उनका कुल समय सेकंड में 60 से विभाज्य है।

इसलिए यदि time ऐरे [30, 20, 150, 100, 40] की तरह है, तो उत्तर 3 होगा। तीन जोड़े होंगे (30, 150), (20, 100), (20, 40) सभी मामलों में कुल अवधि 60 से विभाज्य है।

समाधान के चरण

  • rem नामक एक मैप लें शेष स्टोर करने के लिए। ans := 0 सेट करें
  • time में सभी एलिमेंट्स i के लिए
    • यदि i 60 से विभाज्य है और 0 rem में है, तो ans := ans + rem[0]
    • अन्यथा जब 60 - (i mod 60) rem में है, तो ans := ans + rem[60 - (i mod 60)]
    • यदि i mod 60 rem में है, तो rem[i mod 60] := rem[i mod 60] + 1
    • अन्यथा rem[i mod 60] := 1
  • ans लौटाएं

उदाहरण

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

class Solution(object):
    def numPairsDivisibleBy60(self, time):
        ans = 0
        remainder = {}
        for i in time:
            if i % 60 == 0 and 0 in remainder:
                ans += remainder[0]
            elif 60 - (i % 60) in remainder:
                ans += remainder[60 - (i % 60)]
            if i % 60 in remainder:
                remainder[i % 60] += 1
            else:
                remainder[i % 60] = 1
        return ans

ob1 = Solution()
print(ob1.numPairsDivisibleBy60([30,20,150,100,40]))

इनपुट

[30,20,150,100,40]

आउटपुट

3

  1. पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना

    Pygame में इमेज लोड और डिस्प्ले इमेज फ़ाइल लोड करें → convert() से ऑप्टिमाइज़ करें → blit() से स्क्रीन पर खींचें। पूर्ण कोड उदाहरण import pygame pygame.init() w, h = 300, 300 screen = pygame.display.set_mode((w, h)) pygame.display.set_caption(Tutorialspoint Logo) # इमेज लोड और कन्वर्ट (तेज़ ब्लि

  1. - पायथन में वेरिएबल्स का स्कोप

    प्रोग्राम में सभी वेरिएबल्स प्रोग्राम में सभी स्थानों पर एक्सेसिबल नहीं हो सकते। यह इस बात पर निर्भर करता है कि आपने वेरिएबल कहां घोषित किया है। वेरिएबल का स्कोप प्रोग्राम के उस हिस्से को निर्धारित करता है जहां आप किसी विशेष आइडेंटिफायर को एक्सेस कर सकते हैं। पायथन में वेरिएबल्स के दो बेसिक स्कोप

  1. - पायथन में timeit मॉड्यूल: उदाहरणों के साथ

    पायथन पायथन कोड के एक टुकड़े के निष्पादन समय को मापने के कई तरीके प्रदान करता है। एक तरीका पायथन के बिल्ट-इन time मॉड्यूल का उपयोग करना है और प्रोग्राम के निष्पादन से पहले और बाद का समय सेव करना है। पायथन timeit जब कोई प्रोग्राम चल रहा होता है, तो कई प्रक्रियाएं पृष्ठभूमि में भी चलती हैं जो उस कोड