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

पायथन में सबसे लंबे समय तक सख्ती से बढ़ते हुए घटते सबलिस्ट की लंबाई खोजने का कार्यक्रम

मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हमें सबसे लंबी सबलिस्ट की लंबाई इस तरह से ढूंढनी है कि (न्यूनतम लंबाई 3) इसके मान सख्ती से बढ़ रहे हैं और फिर घट रहे हैं।

इसलिए, यदि इनपुट संख्या =[7, 1, 3, 5, 2, 0] की तरह है, तो आउटपुट 5 होगा, क्योंकि सबलिस्ट [2, 4, 6, 3, 1] सख्ती से बढ़ रहा है फिर घट रहा है ।

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

  • i :=0, n :=आकार a, res :=-infinity
  • जबकि मैं
  • सेंट:=मैं
  • लिंक:=0, एलडीसी:=0
  • जबकि मैं
  • लिंक:=लिंक + 1
  • i :=i + 1
  • जबकि मैं एक [i + 1], करते हैं
    • एलडीसी:=एलडीईसी + 1
    • i :=i + 1
  • यदि लिंक> 0 और एलडीईसी> 0, तो
    • res :=अधिकतम रेस और (i - st + 1)
  • जबकि i
  • i :=i + 1
  • रिटर्न रेस अगर रेस>=0 अन्यथा 0
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class Solution:
       def solve(self, a):
          i, n, res = 0, len(a), float("-inf")
          while i < n - 2:
             st = i
             linc, ldec = 0, 0
             while i < n - 1 and a[i] < a[i + 1]:
                linc += 1
                i += 1
             while i < n - 1 and a[i] > a[i + 1]:
                ldec += 1
                i += 1
             if linc > 0 and ldec > 0:
                res = max(res, i - st + 1)
             while i < n - 1 and a[i] == a[i + 1]:
                i += 1
          return res if res >= 0 else 0
    ob = Solution()
    nums = [8, 2, 4, 6, 3, 1]
    print(ob.solve(nums))

    इनपुट

    [[8, 2, 4, 6, 3, 1]

    आउटपुट

    5

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

      अधिकतम उपसूची। 6 के रूप में। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे- रिट:=0 दो डबल एंडेड कतारों को परिभाषित करें minq और maxq एल:=0, आर:=0 जबकि r <अंकों का आकार, करें एन:=अंक [आर] जबकि minq और n

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

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

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

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