ধরুন আমরা একটি স্ট্রিং s আছে. আমরা ইতিমধ্যে আগে প্রদর্শিত সমস্ত সদৃশ অক্ষর অপসারণ করতে হবে. চূড়ান্ত স্ট্রিংটিতে আসলটির মতো অক্ষরগুলির একই ক্রম থাকবে৷
আমরা অক্ষরের সন্নিবেশ ক্রম বজায় রাখার জন্য আদেশকৃত অভিধান ব্যবহার করে এটি সমাধান করতে পারি। মানটি সেই অক্ষরের ফ্রিকোয়েন্সি হবে, তবে ফ্রিকোয়েন্সি মান এখানে গুরুত্বপূর্ণ নয়। অভিধান তৈরি করার পরে, আমরা কেবল কীগুলি নিতে পারি এবং স্ট্রিং পেতে তাদের সাথে যোগ দিতে পারি।
সুতরাং, যদি ইনপুট s ="bbabcaaccdbaabababc" এর মত হয়, তাহলে আউটপুট হবে "bacd"।
- d :=একটি অভিধান যেখানে কীগুলি তাদের সন্নিবেশ ক্রম অনুসারে সংরক্ষিত হয়
- প্রতিটি অক্ষরের জন্য c s, do
- যদি d-এ c উপস্থিত না থাকে, তাহলে
- d[c] :=0
- d[c] :=d[c] + 1
- যদি d-এ c উপস্থিত না থাকে, তাহলে
- আউটপুট স্ট্রিং তৈরি করতে এবং রিটার্ন করতে সঠিকভাবে একের পর এক কী যোগ করুন।
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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 = "bbabcaaccdbaabababc" print(solve(s))
ইনপুট
"bbabcaaccdbaabababc"
আউটপুট
"bacd"