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

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

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

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

एल्गोरिदम

  1. maxlen := 0, length := 0, qmarks := 0
  2. प्रत्येक कैरेक्टर c के लिए s में:
    • यदि c == "?", तो qmarks += 1
    • अन्यथा:
      • idx := ord(c) - ord("a")
      • यदि length <= idx <= length + qmarks या idx <= qmarks, तो length = idx + 1, अन्यथा length = 0
      • qmarks = 0
    • maxlen = max(maxlen, min(length + qmarks, 26))
  3. maxlen लौटाएं

उदाहरण कार्यान्वयन

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))  # आउटपुट: 6

इनपुट

"vta???defke"

आउटपुट

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

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

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

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

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

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