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

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

मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें s में पैलिंड्रोमिक सबस्ट्रिंग्स की संख्या ज्ञात करनी है।

इसलिए, यदि इनपुट s ="स्तर" जैसा है, तो आउटपुट 7 होगा, क्योंकि पैलिंड्रोमिक सबस्ट्रिंग हैं:["l", "e", "v", "e", "l", "eve" , "स्तर"]

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

  • एक फ़ंक्शन को परिभाषित करें check_palindrome()। यह स्ट्रिंग ले जाएगा, बाएँ, दाएँ
  • उत्तर:=0
  • बाएं>=0 और दाएं <आकार के साथ, करते हैं
    • यदि s[बाएं], s[दाएं] के समान है, तो
      • उत्तर:=उत्तर + 1
      • बाएं:=बाएं - 1
      • दाएं:=दाएं + 1
    • अन्यथा,
      • वापसी उत्तर
  • वापसी उत्तर
  • मुख्य विधि से, निम्न कार्य करें -
  • उत्तर:=0
  • char_index के लिए 0 से लेकर s के आकार तक, करें
    • उत्तर:=उत्तर + check_palindrome(s, char_index - 1, char_index + 1)
    • उत्तर:=उत्तर + check_palindrome(s, char_index, char_index + 1)
  • वापसी (उत्तर) + s का आकार

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

उदाहरण

class Solution:
   def solve(self, s):
      def check_palindrome(string, left, right):
         ans = 0
         while left >= 0 and right < len(s):
            if s[left] == s[right]:
               ans += 1
               left -= 1
               right += 1
            else:
               return ans
         return ans
      ans = 0
      for char_index in range(len(s)):
         ans += check_palindrome(s, char_index - 1, char_index + 1)
         ans += check_palindrome(s, char_index, char_index + 1)
      return (ans) + len(s)
ob = Solution()
print(ob.solve("level"))

इनपुट

"level"

आउटपुट

7

  1. पायथन में बाइनरी स्ट्रिंग में सभी 1s के साथ सबस्ट्रिंग गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। हमें उन सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनमें केवल 1 है। अगर उत्तर बहुत बड़ा है, तो परिणाम को 10^9+7 से संशोधित करें। इसलिए, यदि इनपुट s =100111 जैसा है, तो आउटपुट 7 होगा, क्योंकि केवल 1 वाले सबस्ट्रिंग [1, 1, 1, 1, 11 हैं। , 11 और 111] इसे हल कर

  1. पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें केवल तीन वर्ण X, (, और ) हैं। स्ट्रिंग में संतुलित कोष्ठक होते हैं और कुछ X के बीच में संभावित रूप से नेस्टेड कोष्ठक भी पुनरावर्ती रूप से हो सकते हैं। हमें s में कोष्ठक की प्रत्येक गहराई पर X की संख्या ज्ञात करनी है, जो सबसे कम गहराई से शुरू होकर सबसे गहर

  1. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर