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

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

मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है। इसमें अंग्रेजी अक्षर के साथ-साथ "?" प्रतीक। प्रत्येक के लिए "?" हमें या तो इसे हटाना होगा या इसे किसी छोटे अक्षर से बदलना होगा। हमें अक्षर "a" से शुरू होने वाले सबसे लंबे क्रमागत रूप से बढ़ते हुए सबस्ट्रिंग की लंबाई ज्ञात करनी होगी।

इसलिए, यदि इनपुट s ="vta???defke" जैसा है, तो आउटपुट 6 होगा, क्योंकि हम s को "vtabcdefke" में बदल सकते हैं और "abcdef" सबसे लंबे समय तक लगातार बढ़ने वाला सबस्ट्रिंग है, और यह भी शुरू हो रहा है "ए"।

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

  • अधिकतम:=0
  • लंबाई:=0
  • qmarks:=0
  • प्रत्येक c in s के लिए, करें
    • यदि c "?" के समान है, तो
      • qmarks:=qmark + 1
    • अन्यथा,
      • idx :=(सी का एएससीआईआई) - ("ए" का एएससीआईआई)
      • लंबाई:=idx + 1 यदि लंबाई <=idx <=लंबाई + qmarks या idx <=qmarks अन्यथा 0
      • qmarks:=0
    • अधिकतम :=अधिकतम अधिकतम और (न्यूनतम लंबाई + qmarks और 26)
  • अधिकतम वापसी

उदाहरण

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

def solve(s):
   maxlen = length = qmarks = 0
   for c in s:
      if c == "?":
         qmarks += 1
      else:
         idx = ord(c) - ord("a")
         length = idx + 1 if length <= idx <= length + qmarks or idx <= qmarks else 0
         qmarks = 0
      maxlen = max(maxlen, min(length + qmarks, 26))
   return maxlen

s = "vta???defke"
print(solve(s))

इनपुट

"vta???defke"

आउटपुट

6

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

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

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

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

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

    मान लीजिए कि हमारे पास संख्याओं की एक क्रमबद्ध सरणी है, हमें लगातार तत्वों के सबसे लंबे अनुक्रम की लंबाई का पता लगाना है। इसलिए, यदि इनपुट अंकों की तरह है =[70, 7, 50, 4, 6, 5], तो आउटपुट 4 होगा, क्योंकि लगातार तत्वों का सबसे लंबा अनुक्रम [4, 5, 6, 7] है। इसलिए हम इसकी लंबाई लौटाते हैं:4. इसे हल क