কম্পিউটার

পাইথনে স্ট্রিং-এ সমস্ত সংলগ্ন ডুপ্লিকেটগুলি সরান


ধরুন আমাদের কাছে ছোট হাতের অক্ষরের একটি স্ট্রিং S আছে; একটি ডুপ্লিকেট অপসারণ অপারেশন সঞ্চালিত হবে. এটি দুটি সন্নিহিত এবং সমান অক্ষর নির্বাচন করে এবং তাদের অপসারণ করে করা হবে।

আমরা বারবার S থেকে সদৃশগুলি সরিয়ে দেব যতক্ষণ না কোনও সদৃশ অবশিষ্ট না থাকে৷

এই ধরনের সব ডুপ্লিকেট অপসারণ সম্পন্ন হওয়ার পরে স্ট্রিংটি ফেরত দিন। এটা নিশ্চিত যে উত্তরটি অনন্য।

ধরুন স্ট্রিংটি "abbacaca", তাহলে উত্তর হবে "caca"। প্রথমে ডুপ্লিকেট মুছুন bb, তারপর স্ট্রিং হল “aacaca”, তারপর aa রিমুভ করুন, তারপর স্ট্রিং হল “caca”, তারপরে এরকম কোন ডুপ্লিকেট নেই।

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

  • একটি অ্যারে st সংজ্ঞায়িত করুন, এবং শুরু করুন i :=0
  • যখন i <স্ট্রিংয়ের দৈর্ঘ্য −
    • যদি st-এর কিছু উপাদান থাকে, এবং st =st[i]-এর শেষ উপাদান থাকে, তাহলে i 1 দ্বারা বাড়ান, এবং st থেকে শেষ উপাদান মুছে ফেলুন
    • অন্যথায় st এ string[i] যোগ করুন, i 1 দ্বারা বাড়ান
  • অবশেষে একটি স্ট্রিং হিসাবে st এ সমস্ত উপাদান যোগ করুন এবং ফিরে আসুন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

class Solution(object):
   def removeDuplicates(self, S):
      st = []
      i = 0
      while i < len(S):
         if len(st)!=0 and st[-1]==S[i]:
            i+=1
            st.pop(-1)
         else:
            st.append(S[i])
            i+=1
      return "".join(i for i in st)
ob1 = Solution()
print(ob1.removeDuplicates("abbacaca"))

ইনপুট

"abbacaca"

আউটপুট

"caca"

  1. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর সমস্ত স্থানান্তর প্রিন্ট করতে

  2. পাইথনে একটি স্ট্রিংয়ে সমস্ত ট্রেলিং এবং অগ্রণী হোয়াইটস্পেস কীভাবে সরিয়ে ফেলবেন?

  3. কিভাবে Python এ স্ট্রিং এর সমস্ত ট্রেলিং হোয়াইটস্পেস অপসারণ করবেন?

  4. পাইথনে স্ট্রিংয়ে সমস্ত নেতৃস্থানীয় হোয়াইটস্পেস কীভাবে সরিয়ে ফেলা যায়?