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

पायथन में स्ट्रिंग को k विशिष्ट पार्टीशन में विभाजित करने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s और एक मान k है। k का मान s की लंबाई का एक गुणक है, मान लें लंबाई n है। हम s को n/k अलग-अलग सबस्ट्रिंग्स में विभाजित कर सकते हैं जिन्हें आकार k के t_i कहा जाता है। फिर इन t_i का उपयोग u_i बनाने के लिए करें जैसे कि:

  • u_i में मौजूद वर्ण t_i में वर्णों का सबसीक्वेंस हैं
  • इन स्ट्रिंग्स से किसी भी दोहराए गए वर्ण को हटा दिया जाएगा ताकि u_i में प्रत्येक वर्ण की आवृत्ति 1 हो

हमें ये u_i स्ट्रिंग्स ढूंढनी हैं।

उदाहरण के लिए, यदि इनपुट s = "MMPQMMMRM" k = 3 है, तो आउटपुट ["MP", "QM", "MR"] होगा क्योंकि s का आकार 9 है, और k 3 है, तो 9/3 = 3। स्ट्रिंग्स MMP, QMM और MRM हैं, लेकिन चूंकि हम डुप्लिकेट वर्णों का समर्थन नहीं करते, तो वे MP, QM और MR होंगे।

समाधान दृष्टिकोण

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

  • i := 0
  • ret := एक नई सूची
  • mp := एक नया मैप
  • to_print := खाली स्ट्रिंग
  • जब तक i < s का आकार, करें
    • यदि i mod k, 0 के समान है और i 0 नहीं है, तो
      • to_print को ret के अंत में डालें
      • mp और to_print को क्लियर करें
    • यदि s[i], mp में मौजूद नहीं है, तो
      • mp[s[i]] := 0
      • to_print := to_print + s[i]
    • i := i + 1
  • to_print को ret के अंत में डालें
  • ret लौटाएं

उदाहरण

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

def solve(s, k):
    i = 0
    ret = []
    mp, to_print = {}, ""
    while i < len(s):
        if i % k == 0 and i != 0:
            ret.append(to_print)
            mp, to_print = {}, ""
        if s[i] not in mp.keys():
            mp[s[i]] = 0
            to_print += s[i]
        i += 1
    ret.append(to_print)
    return ret

s = "MMPQMMMRM"
k = 3
print(solve(s, k))

इनपुट

"MMPQMMMRM", 3

आउटपुट

['MP', 'QM', 'MR']
  1. - पायथन प्रोग्राम: लिस्ट को स्ट्रिंग में बदलें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक लिस्ट दिए जाने पर, हमें इसे स्ट्रिंग टाइप में बदलने की आवश्यकता है। यहां हम ऊपर दी गई प्रॉब्लम स्टेटमेंट को हल करने के लिए चार अलग-अलग दृष्टिकोणों पर चर्चा करेंगे: दृष्टिकोण 1: खा

  1. - स्ट्रिंग को विभाजित और जोड़ने का पायथन प्रोग्राम

    समस्या विवरण पायथन प्रोग्राम स्ट्रिंग को जोड़ने और विभाजित करने के लिए बिल्ट-इन फंक्शन प्रदान करता है। split: str.split() join: str1.join(str2) एल्गोरिदम एक स्ट्रिंग इनपुट करें। यहां हम विभाजन के लिए split मेथड और जोड़ने के लिए join फंक्शन का उपयोग करते हैं। आउटपुट प्रदर्शित करें। उदाहरण कोड: व

  1. - वर्णों की सूची को स्ट्रिंग में बदलने का पायथन प्रोग्राम

    समस्या विवरण पायथन को इस तरह के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण सीरियलाइज़ेशन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा: [h, e, l, l, o, , w, o, r, l, d] से hello world पायथन में एक join मेथड होता है जिसका उपयोग ऐसे रूपांतरण के लिए किया जा सकत