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

পাইথনে স্ট্রিং থেকে পূর্বে ঘটা ক্যারেক্টার সরিয়ে কম করা প্রোগ্রাম

ধরুন আমাদের একটি স্ট্রিং s আছে। আমাদের সেই ক্যারেক্টারগুলো সরিয়ে ফেলতে হবে যা ইতিমধ্যে ঘটেছে, এবং কম করা স্ট্রিংটি রিটার্ন করতে হবে। এজন্য আমরা একটি অর্ডার্ড ডিকশনারি ব্যবহার করব ক্যারেক্টারদের ইনসারশন অর্ডার মেইনটেইন করতে। ভ্যালু হবে সেই ক্যারেক্টারদের ফ্রিকোয়েন্সি, তবে এখানে ফ্রিকোয়েন্সি মান গুরুত্বপূর্ণ নয়। ডিকশনারি বানালে আমরা শুধু কীগুলো নিয়ে জয়েন করে আউটপুট স্ট্রিং পেতে পারি।

উদাহরণস্বরূপ, যদি ইনপুট s = "cabbbaadac" হয়, তবে আউটপুট হবে "cabd"।

সমাধানের ধাপসমূহ

  • d := একটি ডিকশনারি যেখানে কীগুলো তাদের ইনসারশন অর্ডারে স্টোর থাকবে
  • প্রতিটি ক্যারেক্টার c ইন s এর জন্য:
    • যদি c d-এ নেই, তবে d[c] := 0
    • d[c] := d[c] + 1
  • কীগুলোকে সঠিক ক্রমে একসাথে জয়েন করে আউটপুট স্ট্রিং বানান এবং রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

from collections import OrderedDict

def solve(s):
    d = OrderedDict()
    for c in s:
        if c not in d:
            d[c] = 0
        d[c] += 1
    return ''.join(d.keys())

s = "cabbbaadac"
print(solve(s))

ইনপুট

"cabbbaadac"

আউটপুট

cabd
  1. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  2. পাইথনে স্ট্রিং থেকে ক্যারেক্টার লিস্ট রিমুভ করা

  3. পাইথনে স্ট্রিং থেকে শুধু ডিজিট বাদে সব ক্যারেক্টার রিমুভ করা

  4. পাইথনে স্ট্রিং থেকে নির্দিষ্ট ক্যারেক্টার সরিয়ে ফেলা