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

पायथन में एक स्ट्रिंग के हर विकल्प के अलग-अलग वर्णों की संख्या की गणना करने का कार्यक्रम

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

इसलिए, यदि इनपुट s ="xxy" जैसा है, तो आउटपुट 6 होगा, क्योंकि सबस्ट्रिंग और उनकी गणनाएँ हैं -

  • "एक्स" :1

  • "एक्स" :1

  • "वाई" :1

  • "xx" :0 (जैसा कि "x" अलग नहीं है)

  • "xy" :2

  • "xxy" :1 ("जैसा कि "x" अलग नहीं है)

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

  • मी :=10^9 + 7

  • prev_seen :=एक नया खाली नक्शा

  • उत्तर :=0

  • उपयोग() फ़ंक्शन को परिभाषित करें। यह मैं, प्रतीक लेगा

  • prev_seen[symbol] :=एकल मान वाली एक सूची −1

  • पिछला:=prev_seen[प्रतीक]

  • पिछले के अंत में i डालें

  • अगर पिछला का आकार> 2, तो

    • बायां:=पिछला का पहला तत्व और पिछला से पहला तत्व हटाएं

    • मध्य:=पिछला[0], दाएं:=पिछला[1]

    • cnt :=(मध्य - बाएँ) *(दाएँ - मध्य)

    • उत्तर:=(Ans + cnt) मॉड एम

  • प्रत्येक अनुक्रमणिका i और s में मान चिह्न के लिए, करें

    • उपयोग (i, प्रतीक)

  • prev_seen में प्रत्येक प्रतीक के लिए, करें

    • उपयोग (एस का आकार, प्रतीक)

  • वापसी उत्तर

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

उदाहरण

class Solution:
   def solve(self, s):
      m = 10 ** 9 + 7
      prev_seen = {}
      ans = 0
      def util(i, symbol):
         nonlocal ans
         prev = prev_seen.setdefault(symbol, [−1])
         prev.append(i)
         if len(prev) > 2:
            left = prev.pop(0)
            middle, right = prev
            cnt = (middle − left) * (right − middle)
            ans = (ans + cnt) % m
      for i, symbol in enumerate(s):
         util(i, symbol)
      for symbol in prev_seen:
         util(len(s), symbol)
      return ans
ob = Solution()
s = "xxy"
print(ob.solve(s))

इनपुट

xxy

आउटपुट

6

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

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

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

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

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

    इस कार्यक्रम में, एक उपयोगकर्ता इनपुट स्ट्रिंग दिया गया। हमें इस स्ट्रिंग में स्वरों की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनियंत्रित संग्रह डेटा प्रकार है जो चलने योग्य, परिवर्तनशील और कोई डुप्लिकेट तत्व नहीं है। उदाहरण Input str1=pythonprogram Output 3 एल्गोरिदम Step