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

পাইথনে কোম্পানির নাম থেকে 탑 তিনটি সবচেয়ে বেশি ঘটা অক্ষর বের করার প্রোগ্রাম

ধরুন আমাদের একটি কোম্পানির নাম স্ট্রিং হিসেবে আছে। আমাদের কোম্পানির নাম থেকে সবচেয়ে সাধারণ তিনটি ক্যারেক্টার বের করতে হবে এবং নিচের নিয়ম অনুযায়ী দেখাতে হবে:

  • সবচেয়ে বেশি ফ্রিকোয়েন্সির তিনটি অক্ষর বাছাই করুন
  • নামের অক্ষর অনুযায়ী সর্ট করুন (ডিসেন্ডিং অর্ডার)
  • যদি কিছু ক্যারেক্টারের ফ্রিকোয়েন্সি একই হয়, তবে অ্যালফাবেটিক্যাল অর্ডারে নিন

উদাহরণস্বরূপ, যদি ইনপুট s = "TUTORIALSPOINT" হয়, তবে আউটপুট হবে [[3, 'T'], [2, 'I'], [2, 'O']]।

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

  • x := s-এ থাকা অক্ষর এবং তাদের ফ্রিকোয়েন্সি ধারণকারী একটি ম্যাপ
  • res := একটি নতুন লিস্ট
  • x-এ থাকা প্রতিটি i এর জন্য (x[i], i) পেয়ার 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']]
  1. পাইথনে তিনটি ইউনিক এলিমেন্ট যাদের যোগফল k-র সবচেয়ে কাছাকাছি (3Sum Closest)

  2. পাইথনে শব্দ তালিকা থেকে সর্বোচ্চ আকারের অ্যানাগ্রাম গোষ্ঠী খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে তিনটি সংখ্যার মধ্যে সর্বোচ্চ মান বের করা

  4. পাইথনে লিস্ট থেকে N বড় এলিমেন্ট বের করা