রিমুভ ডুপ্লিকেট লেটার্স সমস্যা
একটি স্ট্রিং দেওয়া আছে (শুধু ছোট হাতের অক্ষর)। সব ডুপ্লিকেট অক্ষর মুছে ফেলতে হবে যাতে প্রতিটি অক্ষর একবারই থাকে, এবং ফলাফলটি লেক্সিকোগ্রাফিকালি সবচেয়ে ছোট হয়।
উদাহরণ: "abccb" → "abc"
সমাধানের পদ্ধতি (স্ট্যাক + লালচী)
- একটি স্ট্যাক
stএবং ফ্রিকোয়েন্সি ম্যাপmরাখুন - প্রতিটি অক্ষর
xপ্রসেস করুন:m[x]--(বাকি কয়টি আছে)- যদি ইতিমধ্যে স্টকে থাকে, স্কিপ করুন
- যদি
x < st.top()এবংst.top()পরে আর আসবে (m[st.top()] > 0), তবে পপ করুন xপুশ করুন
- স্ট্যাক থেকে রিভার্স করে স্ট্রিং বানান
C++ কোড উদাহরণ
ইনপুট
"abccb"আউটপুট
"abc"