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

पायथन में सबसे लंबे समय तक खंडित पैलिंड्रोम अपघटन की लंबाई खोजने का कार्यक्रम

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

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

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

  • काउंटर :=0

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

  • आईसी:=0, जेसी:=टेक्स्ट का आकार

  • जबकि मैं <=j, करता हूं

    • यदि टेक्स्ट का सबस्ट्रिंग [इंडेक्स आईसी से आई -1] टेक्स्ट के सबस्ट्रिंग के समान है [इंडेक्स जे से जेसी -1], तो

      • काउंटर :=काउंटर + 2

      • आईसी:=मैं

      • जेसी:=जे

    • मैं :=मैं + 1

    • जे:=जे - 1

  • अगर आईसी जेसी के समान नहीं है, तो

    • काउंटर :=काउंटर + 1

  • वापसी काउंटर

उदाहरण

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

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 =vta

  1. पायथन में एक एन-आरी पेड़ में सबसे लंबे पथ की लंबाई खोजने का कार्यक्रम

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