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

पायथन में निरंतर अंतर के साथ सबसे लंबे अंकगणितीय अनुक्रम की लंबाई खोजने का कार्यक्रम

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

इसलिए, यदि इनपुट अंकों की तरह है =[-1, 1, 4, 7, 2, 10] अंतर =3, तो आउटपुट 4 होगा, क्योंकि, हम बाद में [1, 4, 7, 10] चुन सकते हैं ].

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

  • देखा:=एक खाली शब्दकोश, कुंजी मौजूद नहीं होने पर डिफ़ॉल्ट मान 0 होता है
  • एमएक्स :=0
  • अंकों में प्रत्येक x के लिए, करें
    • यदि x-diff दिखाई दे रहा है, तो
      • देखा[x] :=देखा[x - diff] + 1
    • अन्यथा,
      • देखा[x] :=1
    • mx :=अधिकतम mx और देखा गया[x]
  • रिटर्न एमएक्स

उदाहरण

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

from collections import defaultdict
def solve(nums, diff):
   seen = defaultdict(int)
   mx = 0
   for x in nums:
      if x - diff in seen:
         seen[x] = seen[x - diff] + 1
      else:
         seen[x] = 1
      mx = max(mx, seen[x])
   return mx

nums = [-1, 1, 4, 7, 2, 10]
diff = 3
print(solve(nums, diff))

इनपुट

[-1, 1, 4, 7, 2, 10], 3

आउटपुट

4

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

    मान लीजिए हमारे पास संख्याओं की एक सूची है। हमें सबसे लंबे समय तक बढ़ते क्रम की लंबाई ज्ञात करनी है। तो अगर इनपुट [6, 1, 7, 2, 8, 3, 4, 5] जैसा है, तो आउटपुट 5 होगा, क्योंकि सबसे लंबे समय तक बढ़ने वाला क्रम [2,3,4,5,6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - टेल्स नामक एक सरणी बनाएं

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

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

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

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