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

पायथन में सबसे लंबा अच्छा प्रदर्शन करने वाला अंतराल

मान लीजिए कि हमारे पास घंटों की सूची है, यह किसी दिए गए कर्मचारी के लिए प्रति दिन काम किए गए घंटों की एक सूची है। यहां एक दिन को एक थका देने वाला दिन माना जाता है यदि और केवल तभी जब काम किए गए घंटों की संख्या (कड़ाई से) 8 से अधिक हो। एक अच्छा प्रदर्शन करने वाला अंतराल दिनों का अंतराल होता है जिसके लिए थका देने वाले दिनों की संख्या संख्या से काफी अधिक होती है। गैर-थकाऊ दिनों के। हमें सबसे लंबे समय तक अच्छा प्रदर्शन करने वाले अंतराल की लंबाई का पता लगाना है। तो अगर इनपुट [9,9,6,0,6,6,9] जैसा है, तो फिर आउटपुट 3 होगा। ऐसा इसलिए है क्योंकि सबसे लंबा अच्छा प्रदर्शन करने वाला अंतराल [9,9,6]

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

  • अस्थायी सेट करें:=0 और उत्तर:=0, एक नक्शा d बनाएं, और कोने:=0
  • मैं के लिए 0 से घंटे की सरणी के आकार के लिए - 1
    • अस्थायी:=अस्थायी + 1 अगर घंटे[i]> 8, अन्यथा -1
    • अगर घंटे[i]> 8, तो कोना =1
    • अगर अस्थायी> 0, तो उत्तर :=अधिकतम उत्तर और i + 1
    • यदि अस्थायी मानचित्र d में नहीं है, तो d[temp] :=i
    • यदि मानचित्र d में अस्थायी -1 है, तो, उत्तर:=अधिकतम उत्तर और i – d [temp – 1]

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

उदाहरण

class Solution(object):
   def longestWPI(self, hours):
      temp = 0
      ans = 0
      d = {}
      corner = 0
      for i in range(len(hours)):
         temp += 1 if hours[i]>8 else -1
         if hours[i]>8:
            corner = 1
         if temp>0:
            ans = max(ans,i+1)
         if temp not in d:
            d[temp]=i
         if temp-1 in d:
            ans = max(ans,i-d[temp-1])
      return max(ans,0)
ob = Solution()
print(ob.longestWPI([9,9,6,0,6,6,9]))

इनपुट

[9,9,6,0,6,6,9]

आउटपुट

3

  1. पायथन में सबसे लंबे समय तक बढ़ने वाला क्रम

    मान लीजिए कि हमारे पास पूर्णांकों की एक क्रमबद्ध सूची नहीं है। हमें सबसे लंबे समय तक बढ़ते क्रम को खोजना होगा। तो अगर इनपुट [10,9,2,5,3,7,101,18] है, तो आउटपुट 4 होगा, क्योंकि बढ़ते क्रम [2,3,7,101] इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - ट्रेल :=लंबाई 0 से लेकर अंकों की लंबाई -1 तक की एक

  1. पायथन में सबसे लंबा पालिंड्रोमिक सबस्ट्रिंग

    मान लीजिए कि हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबी पैलिंड्रोमिक सबस्ट्रिंग ढूंढनी है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। इसलिए यदि स्ट्रिंग BABAC है , तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग “BAB” है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे स्ट्रिंग की लंबाई के समान क्रम

  1. पायथन में वर्णों को दोहराए बिना सबसे लंबा सबस्ट्रिंग

    मान लीजिए कि हमारे पास एक स्ट्रिंग है। हमें पात्रों को दोहराए बिना सबसे लंबा विकल्प खोजना होगा। तो अगर स्ट्रिंग ABCABCBB की तरह है, तो परिणाम 3 होगा, क्योंकि एक सबस्ट्रिंग है जो दोहरा रही है, लंबाई 3 की है। वह एबीसी है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे सेट i :=0, j :=0, जानकारी स्टोर