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

पायथन में n(t) फॉर्मेट में दर्शाई गई स्ट्रिंग को विस्तारित करने का प्रोग्राम


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

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

हल करने के चरण

  • i := 0

  • parse() फ़ंक्शन परिभाषित करें। यह लेगा

    • ans := एक नई सूची

    • जब तक i < s का आकार और s[i], ")" के समान नहीं है, करें

      • यदि s[i] अंक है, तो

        • d := 0

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

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

          • i := i + 1

        • i := i + 1

        • segment := parse()

        • i := i + 1

        • segment को d बार ans में डालें

      • अन्यथा, s[i] को ans के अंत में डालें, i := i + 1

    • ans के आइटम्स को जोड़कर स्ट्रिंग लौटाएं

  • मुख्य विधि से parse() लौटाएं

उदाहरण

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. पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें पायथन प्रोग्राम: हेक्साडेसिमल स्ट्रिंग को दशमलव में बदलें

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

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

    पायथन में एक मानक लाइब्रेरी होती है जिसे string कहा जाता है। इस मॉड्यूल में विभिन्न स्ट्रिंग-संबंधी कॉन्स्टेंट्स, मेथड्स और क्लासेस उपलब्ध होते हैं।इनका उपयोग करने के लिए, हमें अपने कोड में string मॉड्यूल को इम्पोर्ट करना पड़ता है।import stringकुछ स्ट्रिंग कॉन्स्टेंट्स और उनके मान निम्नलिखित हैं:क्र

  1. - Python 3 में Dictionary का उपयोग करके String Format कैसे करें?

    Dictionary के साथ String Formatting आप Strings को Interpolate करने के लिए Dictionaries का उपयोग कर सकते हैं। इनका एक Syntax होता है जिसमें आपको % और Conversion Character के बीच Parentheses में Key Provide करना होता है। उदाहरण उदाहरण के लिए, यदि आपके पास Key cost में Float Stored है और आप इसे $xxxx