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

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


मान लीजिए हमारे पास एक टेक्स्ट है। हमें सबसे बड़ा संभव k ढूंढना है जैसे कि a[1], a[2], ..., a[k] मौजूद हों जहां: प्रत्येक a[i] एक गैर-रिक्त स्ट्रिंग है। और उनका संयोजन a[1] + a[2] + ... + a[k] दिए गए टेक्स्ट के बराबर है; 1 से k तक सभी i के लिए, a[i] = a[k+1 - i]।

उदाहरण के लिए, यदि इनपुट text = "antaprezatepzapreanta" है, तो आउटपुट 11 होगा क्योंकि हम इसे "a|nt|a|pre|za|tpe|za|pre|a|nt|a" की तरह विभाजित कर सकते हैं।

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

  • counter := 0

  • i := 1, j := टेक्स्ट का आकार - 1

  • ic := 0, jc := टेक्स्ट का आकार

  • जब तक i <= j, तब तक:

    • यदि टेक्स्ट का उपस्ट्रिंग [ic से i-1] टेक्स्ट के उपस्ट्रिंग [j से jc-1] के समान है, तो:

      • counter := counter + 2

      • ic := i

      • jc := j

    • i := i + 1

    • j := j - 1

  • यदि ic, jc के बराबर नहीं है, तो counter := counter + 1

  • counter लौटाएं।

उदाहरण

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

def solve(text):    counter = 0    i, j = 1, len(text) - 1    ic, jc = 0, len(text)    while i <= j:       if text[ic:i] == text[j:jc]:          counter += 2          ic = i          jc = j       i += 1       j -= 1 if ic != jc: counter += 1 return counter text = "antaprezatepzapreanta" print(solve(text))

इनपुट

[3,4,5,2,1,7,3,4,7], 3 

आउटपुट

11

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

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है, जहां 0 खाली सेल दर्शाता है और 1 दीवार दर्शाता है। हम पहली पंक्ति के किसी भी खाली सेल से शुरू कर सकते हैं और अंतिम पंक्ति के किसी भी खाली सेल पर समाप्त करना चाहते हैं। हम बाएं, दाएं या नीचे जा सकते हैं, हमें सबसे लंबा ऐसा पथ ढूंढना है जहां हम प्रत्येक सेल क

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

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

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

    मान लीजिए हमारे पास एक एज लिस्ट है जहां प्रत्येक आइटम (u, v) रखता है जो दर्शाता है कि u, v का पैरेंट है। हमें ट्री में सबसे लंबे पथ की लंबाई ढूंढनी है। पथ की लंबाई 1 + उस पथ में नोड्स की संख्या है। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट 5 होगा, क्योंकि पथ [1, 4, 5, 7] है, कुल 4 नोड्स हैं, इसलिए पथ