কম্পিউটার

পাইথনে n(t) বিন্যাস হিসাবে উপস্থাপিত স্ট্রিং প্রসারিত করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s আছে, এটি একটি দীর্ঘ স্ট্রিংকে এনকোড করছে। s কে n(t) এর সংমিশ্রণ হিসাবে উপস্থাপিত করা হয়, n(t) টি, n বারের সংমিশ্রণকে প্রতিনিধিত্ব করে এবং t হয় একটি নিয়মিত স্ট্রিং বা এটি পুনরাবৃত্তিমূলকভাবে অন্য এনকোড করা স্ট্রিং। আমাদের s-এর ডিকোডেড সংস্করণ খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি s ="3(pi)2(3(am))0(f)1(u)" এর মত হয়, তাহলে আউটপুট হবে "পিপিপিয়ামামামামামামু"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • i :=0

  • একটি ফাংশন পার্স () সংজ্ঞায়িত করুন। এটি লাগবে

  • উত্তর :=একটি নতুন তালিকা

  • যখন i

    • যদি s[i] একটি সংখ্যা হয়, তাহলে

      • d :=0

      • যখন s[i] ডিজিট হয়, ডু

        • d :=10 * d + s[i]

          এর পূর্ণসংখ্যা অংশ
        • i :=i + 1

      • i :=i + 1

      • সেগমেন্ট :=পার্স()

      • i :=i + 1

      • উত্তরে d বার সেগমেন্ট সন্নিবেশ করুন

    • অন্যথায়,

      • উত্তরের শেষে s[i] সন্নিবেশ করুন

      • i :=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. হেক্স স্ট্রিংকে দশমিকে রূপান্তর করতে পাইথন প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি স্ট্রিং মধ্যে ইউআরএল চেক করতে

  3. একটি স্ট্রিং মধ্যে মিরর অক্ষর খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন 3 এ একটি অভিধান ব্যবহার করে আমি কীভাবে একটি স্ট্রিং ফর্ম্যাট করব?