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)( ए)(एनटी)(ए)"।

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

  • प्रारंभ:=0, अंत:=पाठ की लंबाई - 1

  • खाली स्ट्रिंग के साथ temp1 और temp2 को इनिशियलाइज़ करें

  • उत्तर =1 जब टेक्स्ट की लंबाई विषम हो, अन्यथा 0

  • प्रारंभ करते समय <अंत, करें -

    • temp1 :=temp1 + text[शुरू]

    • temp2 :=text[end] + temp2

    • अगर temp1 temp2 के समान है, तो -

      • temp1 और temp2 को खाली स्ट्रिंग के रूप में सेट करें

      • उत्तर:=उत्तर + 2

    • प्रारंभ:=प्रारंभ + 1

    • अंत:=अंत - 1

  • अगर टेक्स्ट की लंबाई सम है और (temp1 या temp2 खाली नहीं है)

    • उत्तर:=उत्तर + 1

  • वापसी उत्तर

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

उदाहरण

class Solution(object):
   def longestDecomposition(self, text):
      start = 0
      end = len(text)-1
      temp1 = ""
      temp2 = ""
      ans = 1 if len(text) & 1 else 0
      while start<end:
         temp1+=text[start]
         temp2 = text[end]+temp2
         if temp1 == temp2:
            temp1 = temp2 = ""
            ans+=2
         start+=1
         end-=1
      if len(text)%2 == 0 and(temp1 or temp2):
         ans += 1
      return ans
ob = Solution()
print(ob.longestDecomposition("antaprezatepzapreanta"))

इनपुट

"antaprezatepzapreanta"

आउटपुट

11

  1. पायथन में मान्य पैलिंड्रोम

    मान लीजिए कि हमारे पास अल्फ़ान्यूमेरिक मानों और प्रतीकों वाली एक स्ट्रिंग है। लोअर केस और अपरकेस अक्षर भी हैं। हमें यह जांचना होगा कि स्ट्रिंग केवल लोअरकेस अक्षरों पर विचार करके एक पैलिंड्रोम बना रही है या नहीं (अपरकेस को लोअर केस में बदल दिया जाएगा), कॉमा, स्पेस जैसे अन्य प्रतीकों को अनदेखा कर दिया

  1. पायथन में सबसे लंबा सामान्य उपसर्ग

    मान लीजिए कि हमारे पास एक सरणी में स्ट्रिंग्स का एक सेट है। हमें सरणी में स्ट्रिंग के बीच सबसे लंबा सामान्य उपसर्ग ढूंढना है। यहां हम मानेंगे कि सभी स्ट्रिंग्स लोअर केस स्ट्रिंग्स हैं। और अगर कोई सामान्य उपसर्ग नहीं है, तो वापस करें। तो अगर एक स्ट्रिंग की सरणी [स्कूल, शेड्यूल, स्कॉटलैंड] की तरह है

  1. पायथन में पैलिंड्रोम संख्या

    मान लीजिए हमारे पास पूर्णांक है। हमें यह जांचना है कि पूर्णांक पैलिंड्रोम है या नहीं। तो क्या पूर्णांक आगे या विपरीत क्रम में समान है, तो संख्या पैलिंड्रोम है। उदाहरण के लिए मान लीजिए कि संख्या 454 है, यदि हम इसे उलट दें तो यह फिर से 454 हो जाएगी। तो यह पैलिंड्रोम है। अब यदि संख्या -565 है, तो 565-