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

पायथन में अपने क्रमबद्ध रूप में एक स्ट्रिंग के पैलिंड्रोमिक उप-स्ट्रिंग की गिनती पाएं


मान लीजिए कि हमारे पास लोअरकेस वर्णों की एक स्ट्रिंग है (सभी ASCII वर्ण हैं), हमें दिए गए स्ट्रिंग के सभी अलग-अलग निरंतर पैलिंड्रोमिक उप-स्ट्रिंग खोजने होंगे।

इसलिए, यदि इनपुट "लेवल" जैसा है, तो आउटपुट 7 होगा क्योंकि सात सबस्ट्रिंग हैं ['लेवल', 'ईव', 'एल', 'ई', 'वी', 'ई', 'एल' ].

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

  • एन:=26

  • n :=str की लंबाई

  • योग :=0

  • my_map :=आकार N की सूची और 0 से भरें

  • मेरे लिए 0 से n की सीमा में, करें

    • my_map[ASCII of (str[i]) - ASCII of ('a')] :=my_map[ASCII of (str[i]) - ASCII of ('a') ] + 1

  • मेरे लिए 0 से N की सीमा में, करें

    • अगर my_map[i] शून्य नहीं है, तो

      • योग :=योग +(my_map[i] *(my_map[i] + 1)/2)

  • वापसी राशि

उदाहरण

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

N = 26
def all_palindrome_substr_count(str):
   n = len (str)
   sum = 0
   my_map = [0] * N
   for i in range(n):
      my_map[ord(str[i]) - ord('a')] += 1
  for i in range(N) :
      if (my_map[i]):
         sum += (my_map[i] * (my_map[i] + 1) // 2)
   return sum
str = "level"
print (all_palindrome_substr_count(str))

इनपुट

"level"

आउटपुट

7

  1. सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट स्ट्रिंग को देखते हुए हमें सबसे अधिक होने वाले चरित्र और उसकी गिनती को खोजने की जरूरत है। दृष्टिकोण काउंटर पद्धति का उपयोग करके एक शब्दकोश बनाएं जिसमें स्ट्रिंग्स कुंजी के रूप में हों

  1. पायथन में वर्णानुक्रम में अक्षरों को कैसे क्रमबद्ध करें?

    एक स्ट्रिंग में अक्षरों को वर्णानुक्रम में क्रमबद्ध करने के लिए, आपको सॉर्ट किए गए फ़ंक्शन का उपयोग करने की आवश्यकता होती है जो अक्षरों की एक क्रमबद्ध सूची देता है जिसे आप एक स्ट्रिंग प्राप्त करने के लिए जोड़ सकते हैं। उदाहरण के लिए, >>> s = "helloworld" >>> ''.jo

  1. कैसे अजगर में एक स्ट्रिंग में सबस्ट्रिंग की nth घटना को खोजने के लिए?

    आप अधिकतम n+1 विभाजन के साथ सबस्ट्रिंग पर विभाजित करके एक स्ट्रिंग में एक सबस्ट्रिंग की nth घटना पा सकते हैं। यदि परिणामी सूची का आकार n+1 से बड़ा है, तो इसका मतलब है कि सबस्ट्रिंग n बार से अधिक होता है। इसका सूचकांक एक साधारण सूत्र द्वारा पाया जा सकता है, मूल स्ट्रिंग की लंबाई - अंतिम विभाजित भाग क