কম্পিউটার টিউটোরিয়াল

C++-এ ডুপ্লিকেট লেটার মুছে সবচেয়ে ছোট লেক্সিকোগ্রাফিকাল স্ট্রিং

রিমুভ ডুপ্লিকেট লেটার্স সমস্যা

একটি স্ট্রিং দেওয়া আছে (শুধু ছোট হাতের অক্ষর)। সব ডুপ্লিকেট অক্ষর মুছে ফেলতে হবে যাতে প্রতিটি অক্ষর একবারই থাকে, এবং ফলাফলটি লেক্সিকোগ্রাফিকালি সবচেয়ে ছোট হয়।

উদাহরণ: "abccb" → "abc"

সমাধানের পদ্ধতি (স্ট্যাক + লালচী)

  • একটি স্ট্যাক st এবং ফ্রিকোয়েন্সি ম্যাপ m রাখুন
  • প্রতিটি অক্ষর x প্রসেস করুন:
    • m[x]-- (বাকি কয়টি আছে)
    • যদি ইতিমধ্যে স্টকে থাকে, স্কিপ করুন
    • যদি x < st.top() এবং st.top() পরে আর আসবে (m[st.top()] > 0), তবে পপ করুন
    • x পুশ করুন
  • স্ট্যাক থেকে রিভার্স করে স্ট্রিং বানান

C++ কোড উদাহরণ


ইনপুট

"abccb"

আউটপুট

"abc"
  1. C++-এ ডুপ্লিকেট সাবট্রি খুঁজে বের করা

  2. স্ট্রিং থেকে ভোয়েল (Vowel) রিমুভ করা (C++)

  3. C++ ব্যবহার করে সব ডুপ্লিকেট সাবট্রি বের করা

  4. C++ প্রোগ্রাম: স্ট্রিং থেকে স্পেস রিমুভ করা