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

पायथन में सबसे लंबे समय तक विशिष्ट उपन्यास की लंबाई खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है, जिसे nums कहा जाता है, और हमें सबसे लंबी सन्निहित सबलिस्ट की लंबाई का पता लगाना है, जहां इसके सभी तत्व अद्वितीय हैं।

इसलिए, यदि इनपुट अंकों की तरह है =[6, 2, 4, 6, 3, 4, 5, 2], तो आउटपुट 5 होगा, क्योंकि अद्वितीय तत्वों की सबसे लंबी सूची [6, 3, 4, 5] है , 2]।

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

  • सिर:=0, डीसीटी:=एक नया नक्शा

  • max_dist :=0

  • प्रत्येक सूचकांक के लिए मैं और तत्वों की संख्या अंकों में, करते हैं

    • यदि संख्या dct और dct में है [num]>=शीर्ष, तो

      • सिर:=डीसीटी [संख्या] + 1

    • डीसीटी [संख्या]:=मैं

    • अगर मैं - सिर + 1> max_dist, तो

      • max_dist :=i - हेड + 1

  • वापसी max_dist

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

उदाहरण

class Solution:
   def solve(self, nums):
      head = 0
      dct = {}
      max_dist = 0
      for i, num in enumerate(nums):
         if num in dct and dct[num] >= head:
            head = dct[num] + 1
         dct[num] = i
         if i - head + 1 > max_dist:
            max_dist = i - head + 1
   return max_dist
ob = Solution()
nums = [6, 2, 4, 6, 3, 4, 5, 2]
print(ob.solve(nums))

इनपुट

[6, 2, 4, 6, 3, 4, 5, 2]

आउटपुट

5

  1. पायथन में सबसे लंबे विपर्यय क्रम की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास दो लोअरकेस स्ट्रिंग्स S और T हैं, तो हमें सबसे लंबे एनाग्राम अनुक्रम की लंबाई ज्ञात करनी होगी। इसलिए, यदि इनपुट S =helloworld, T =hellolorld जैसा है, तो आउटपुट 8 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सी:=एक नया नक्शा, डी:=एक नया नक्शा मैं के लिए 0 से

  1. पायथन में सबसे लंबे समय तक संतुलित बाद की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है जिसमें कोष्ठक कोष्ठक ( और ) है, हमें संतुलित कोष्ठकों के सबसे लंबे बाद के क्रम की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट s =())(()( जैसा है, तो आउटपुट 4 होगा, क्योंकि हम बाद में ()() ले सकते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - रेस :=0

  1. पायथन में सन्निहित कड़ाई से बढ़ती उपसूची की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जब हम सूची से एक या शून्य तत्वों को हटा सकते हैं, तो हमें एक सन्निहित सख्ती से बढ़ती उप-सूची की अधिकतम लंबाई का पता लगाना होगा। इसलिए, यदि इनपुट संख्या =[30, 11, 12, 13, 14, 15, 18, 17, 32] की तरह है, तो आउटपुट 7 होगा, क्योंकि जब ह