কম্পিউটার

পাইথনে ক্রমাগত ডুপ্লিকেট অক্ষর মুছে ফেলার পর স্ট্রিং খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s আছে, আমরা বারবার প্রথম ধারাবাহিক ডুপ্লিকেট অক্ষর মুছে ফেলি। আমাদের চূড়ান্ত স্ট্রিং খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি s ="xyyyxxz" এর মত হয়, তাহলে আউটপুট হবে "z", যেহেতু "yyy" হল প্রথম পরপর ডুপ্লিকেট অক্ষর যা মুছে ফেলা হবে। তাই আমাদের কাছে "xxxz" আছে। তারপর "xxx" মুছে ফেলা হবে "z" দিয়ে শেষ হবে।

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

  • স্ট্যাক :=একটি নতুন স্ট্যাক
  • i :=0
  • যখন i
  • যদি স্ট্যাক খালি না হয় এবং স্ট্যাকের উপরের অংশটি s[i] এর মতো হয়, তাহলে
    • x :=স্ট্যাক থেকে শেষ উপাদান মুছুন
    • যখন i
    • i :=i + 1
  • i :=i - 1
  • অন্যথায়,
    • s[i] স্ট্যাকের মধ্যে ঠেলে
  • i :=i + 1
  • স্ট্যাক উপাদানে যোগদানের পরে ফিরে আসুন
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    class Solution:
       def solve(self, s):
          stack = []
          i = 0
          while i < len(s):
             if len(stack) and stack[-1] == s[i]:
                x = stack.pop()
                while i < len(s) and x == s[i]:
                   i += 1
                i -= 1
                else:
                   stack.append(s[i])
                i += 1
          return "".join(stack)
    ob = Solution()
    s = "xyyyxxz"
    print(ob.solve(s))

    ইনপুট

    "xyyyxxz"

    আউটপুট

    z

    1. পাইথনে বিভিন্ন সংলগ্ন বিট মুছে ফেলার পর সংক্ষিপ্ততম স্ট্রিং খুঁজে বের করার প্রোগ্রাম

    2. পাইথন প্রোগ্রাম একটি স্ট্রিং-এ সমস্ত সদৃশ অক্ষর খুঁজে পেতে

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

    4. পাইথন ব্যবহার করে একটি স্ট্রিং থেকে সমস্ত ডুপ্লিকেট অক্ষর খুঁজুন