কম্পিউটার

পাইথনে একই ফ্রিকোয়েন্সি সহ সর্বাধিক ঘন ঘন উপাদান সহ সংক্ষিপ্ততম সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। সংখ্যায় সবচেয়ে ঘন ঘন সংখ্যার কম্পাঙ্ক যদি k হয়। আমাদের একটি সংক্ষিপ্ততম সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে যাতে এটির সবচেয়ে ঘন ঘন আইটেমের ফ্রিকোয়েন্সিও k হয়।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[10, 20, 30, 40, 30, 10], তাহলে আউটপুট হবে 3, কারণ এখানে সবচেয়ে ঘন ঘন সংখ্যা 10 এবং 30, এখানে k =2। যদি আমরা নির্বাচন করি সাবলিস্ট [30, 40, 30] এটি হল সবচেয়ে ছোট সাবলিস্ট যেখানে 30 উপস্থিত এবং এর ফ্রিকোয়েন্সিও 2।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • L :=সংখ্যার আকার
  • rnums :=সংখ্যার বিপরীত
  • d :=সংখ্যায় উপস্থিত প্রতিটি উপাদানের ফ্রিকোয়েন্সি ধারণকারী একটি মানচিত্র
  • mx :=d-এর সমস্ত মানের তালিকার সর্বাধিক
  • বনাম :=d-এ প্রতিটি k-এর জন্য k-এর একটি তালিকা যদি d[k] mx-এর মতো হয়
  • mn :=L
  • প্রতিটি v এর জন্য বনাম, করুন
    • mn :=ন্যূনতম mn এবং ((L - (rnums-এ v-এর সূচক) - (nums-এ v-এর সূচক))
  • mn ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

সংগ্রহ থেকে কাউন্টারডেফ সমাধান(সংখ্যা):L =len(nums) rnums =nums[::-1] d =Counter(nums) mx =max(d.values()) বনাম =[k এর জন্য k d যদি d[k] ==mx] mn =L v এর জন্য vs:mn =min(mn, (L - rnums.index(v)) - nums.index(v)) mnnums =[10, 20, 30, 40, 30, 10]মুদ্রণ(সমাধান(সংখ্যা))

ইনপুট

<প্রে>[10, 20, 30, 40, 30, 10]

আউটপুট

3

  1. পাইথনে ক্ষুদ্রতম চক্রের দৈর্ঘ্য ধরে রাখার লক্ষ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে সর্বাধিক যোগফল সহ সংলগ্ন সাবলিস্টের যোগফল খুঁজে বের করার প্রোগ্রাম

  3. একটি সাবলিস্ট খুঁজতে প্রোগ্রাম যেখানে পাইথনে প্রথম এবং শেষ মান একই

  4. তালিকায় এমন একটি উপাদান খুঁজে বের করার প্রোগ্রাম যার মান পাইথনের ফ্রিকোয়েন্সির সমান