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

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


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

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

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

  • एक फ़ंक्शन check_palindrome() परिभाषित करें। यह string, left, right लेगा
  • ans := 0
  • जब तक left >= 0 और right < s का आकार, करें
    • यदि s[left], s[right] के समान है, तो
      • ans := ans + 1
      • left := left - 1
      • right := right + 1
    • अन्यथा,
      • ans वापस करें
  • ans वापस करें
  • मुख्य विधि से, निम्नलिखित करें −
  • ans := 0
  • char_index के लिए 0 से s के आकार तक की रेंज में, करें
    • ans := ans + check_palindrome(s, char_index - 1, char_index + 1)
    • ans := ans + check_palindrome(s, char_index, char_index + 1)
  • (ans) + 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. - Python प्रोग्राम - बाइनरी स्ट्रिंग में सभी 1 वाले सबस्ट्रिंग की गिनती

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

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

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

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5