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

पायथन में n(t) प्रारूप के रूप में दर्शाए गए स्ट्रिंग का विस्तार करने का कार्यक्रम

मान लीजिए कि हमारे पास एक स्ट्रिंग है, यह एक लंबी स्ट्रिंग को एन्कोड कर रहा है। s को n(t) के संयोजन के रूप में दर्शाया गया है, n(t) t, n बार के संयोजन का प्रतिनिधित्व करता है, और t या तो एक नियमित स्ट्रिंग है या यह पुनरावर्ती रूप से एक और एन्कोडेड स्ट्रिंग है। हमें s का डिकोडेड संस्करण खोजना होगा।

इसलिए, यदि इनपुट s ="3(pi)2(3(am))0(f)1(u)" जैसा है, तो आउटपुट "pipipiamamamamamamu"

होगा

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

  • मैं :=0

  • एक फ़ंक्शन को परिभाषित करें parse() । इसमें लगेगा

  • उत्तर :=एक नई सूची

  • जबकि मैं

    • अगर s[i] एक अंक है, तो

      • घ :=0

      • जबकि s[i] अंक है, करें

        • d :=10 * d + s का पूर्णांक भाग [i]

        • मैं :=मैं + 1

      • मैं :=मैं + 1

      • खंड:=पार्स ()

      • मैं :=मैं + 1

      • खंड d बार उत्तर में डालें

    • अन्यथा,

      • उत्तर के अंत में s[i] डालें

      • मैं :=मैं + 1

  • उत्तर की वस्तुओं में शामिल होने के बाद वापसी स्ट्रिंग

  • मुख्य विधि से वापसी पार्स ()

उदाहरण

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

class Solution:
   def solve(self, s):
      i = 0
      def parse():
         nonlocal i
         ans = []
         while i < len(s) and s[i] != ")":
            if s[i].isdigit():
               d = 0
               while s[i].isdigit():
                  d = 10 * d + int(s[i])
                  i += 1
               i += 1
               segment = parse()
               i += 1
               ans.extend(segment for _ in range(d))
            else:
               ans.append(s[i])
               i += 1
         return "".join(ans)
         return parse()
ob = Solution()
s = "3(pi)2(3(am))0(f)1(u)"
print(ob.solve(s))

इनपुट

"3(pi)2(3(am))0(f)1(u)"

आउटपुट

pipipiamamamamamamu

  1. हेक्स स्ट्रिंग को दशमलव में बदलने के लिए पायथन प्रोग्राम

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

  1. पायथन में स्ट्रिंग ऑपरेशंस

    पायथन में, एक मानक पुस्तकालय होता है, जिसे स्ट्रिंग . कहा जाता है . स्ट्रिंग मॉड्यूल में, स्ट्रिंग से संबंधित विभिन्न स्थिरांक, विधियां, कक्षाएं उपलब्ध हैं। इन मॉड्यूल का उपयोग करने के लिए, हमें स्ट्रिंग मॉड्यूल . को आयात करना होगा हमारे कोड में। आयात स्ट्रिंग कुछ स्ट्रिंग स्थिरांक और उनके संगत मा

  1. मैं पायथन 3 में एक शब्दकोश का उपयोग करके एक स्ट्रिंग को कैसे प्रारूपित करूं?

    आप स्ट्रिंग्स को प्रक्षेपित करने के लिए शब्दकोशों का उपयोग कर सकते हैं। उनके पास एक सिंटैक्स है जिसमें आपको % और रूपांतरण वर्ण के बीच कोष्ठक में कुंजी प्रदान करने की आवश्यकता होती है। उदाहरण के लिए, यदि आपके पास एक कुंजी लागत में संग्रहीत एक फ्लोट है और इसे $ xxxx.xx के रूप में प्रारूपित करना चाहते