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

पायथन में स्ट्रिंग वर्णों का उपयोग करके हम अद्वितीय पैलिंड्रोम की संख्या गिनने का कार्यक्रम बना सकते हैं

मान लीजिए कि हमारे पास एक स्ट्रिंग है, हमें सभी वर्णों का उपयोग करके उत्पन्न होने वाले अलग-अलग पैलिंड्रोम की संख्या का पता लगाना होगा। अगर उत्तर बहुत बड़ा है तो परिणाम को 10^9 + 7 से संशोधित करें।

इसलिए, यदि इनपुट s ="xyzzy" जैसा है, तो आउटपुट 2 होगा, क्योंकि हम "zyxyz" और "yzxzy" बना सकते हैं

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

  • मी =10^9+7

  • char_freq :=s के प्रत्येक वर्ण और उनकी आवृत्तियों को धारण करने वाला नक्शा

  • विषम :=0

  • char_freq में प्रत्येक वर्ण k और आवृत्ति v के लिए, करें

    • अगर वी मॉड 2 1 है, तो

      • विषम :=विषम + 1

  • अगर विषम> 1, तो

    • वापसी 0

  • आधा_लंबाई:=भागफल (ओं का आकार) / 2

  • रेस :=आधा लंबाई का फैक्टोरियल

  • विभाजक :=1

  • char_freq में प्रत्येक वर्ण k और आवृत्ति v के लिए, करें

    • भाजक :=भाजक * का भाज्य (v/2 का भागफल)

  • वापसी (res/dividor का भागफल) mod m


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

उदाहरण

from math import factorial
class Solution:
   def solve(self, s):
      m = (10**9+7)
      char_freq = {}
      for c in s:
         char_freq[c] = char_freq.get(c, 0) + 1

      odd = 0
      for k,v in char_freq.items():
         if v % 2 == 1:
            odd +=1
      if odd > 1:
         return 0

      half_length = len(s)//2
      res = factorial(half_length)
      dividor = 1
      for k,v in char_freq.items():
         dividor *= factorial(v//2)

   return (res//dividor) % m
ob = Solution()
print(ob.solve("xyzzy"))

इनपुट

"xyzzy"

आउटपुट

2

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

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

  1. किसी दिए गए स्ट्रिंग में सेट का उपयोग करके स्वरों की संख्या गिनने के लिए पायथन प्रोग्राम

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

  1. पायथन प्रोग्राम यह जांचने के लिए कि क्या एक स्ट्रिंग में सभी अद्वितीय वर्ण हैं

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