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

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


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

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

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

  • m = 10^9+7
  • char_freq := s के प्रत्येक वर्ण और उनकी आवृत्तियों को रखने वाला मैप
  • odd := 0
  • char_freq में प्रत्येक वर्ण k और आवृत्ति v के लिए करें:
    • यदि v % 2 == 1, तो odd := odd + 1
  • यदि odd > 1, तो 0 वापस करें
  • half_length := len(s) // 2
  • res := half_length का फैक्टोरियल
  • divisor := 1
  • char_freq में प्रत्येक वर्ण k और आवृत्ति v के लिए करें:
    • divisor := divisor * (v//2) का फैक्टोरियल
  • (res // divisor) % 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)
        divisor = 1
        for k, v in char_freq.items():
            divisor *= factorial(v//2)
        return (res // divisor) % m
ob = Solution()
print(ob.solve("xyzzy"))

इनपुट

"xyzzy"

आउटपुट

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

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

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

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

  1. पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं

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