ধরুন আমরা স্ট্রিং হিসাবে একটি কোম্পানির নাম আছে. আমাদের কোম্পানির নাম থেকে সবচেয়ে সাধারণ তিনটি অক্ষর খুঁজে বের করতে হবে এবং এই নিয়মগুলি অনুসরণ করে দেখাতে হবে −
- সবচেয়ে ঘন ঘন তিনটি অক্ষর বেছে নিন
- সেগুলিকে নিচের ক্রমে সাজান
- যদি কিছু অক্ষরের ফ্রিকোয়েন্সি একই হয় তবে তাদের বর্ণানুক্রমিক ক্রম অনুসারে নিন
সুতরাং, যদি ইনপুটটি s ="TUTORIALSPOINT" এর মত হয়, তাহলে আউটপুট হবে [[3, 'T'], [2, 'I'], [2, 'O']]]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- x :=s তে অক্ষর এবং ফ্রিকোয়েন্সি সহ একটি মানচিত্র
- res :=একটি নতুন তালিকা
- এক্সের প্রতিটি i এর জন্য, করুন
- পেয়ার (x[i], i) ret এ ঢোকান
- res :=বর্ণানুক্রমের উপর ভিত্তি করে সাজানোর পরে res
- res :=বিপরীত ক্রমে কম্পাঙ্কের উপর ভিত্তি করে সাজানোর পরে res
- res থেকে প্রথম তিনটি আইটেম ফেরত দিন
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
from collections import Counter def solve(s): x = Counter(s) res = [] for i in x: res.append([x[i], i]) res = sorted(res, key=lambda cnt: cnt[1]) res = sorted(res, key=lambda cnt: cnt[0], reverse=True) return res[:3] s = "TUTORIALSPOINT" print(solve(s))
ইনপুট
"TUTORIALSPOINT"
আউটপুট
[[3, 'T'], [2, 'I'], [2, 'O']]