কম্পিউটার

Python-এ k-এর থেকে বড় আকারের কঠোরভাবে ক্রমবর্ধমান সাবলিস্টে তালিকাগুলিকে বিভক্ত করার প্রোগ্রাম


ধরুন আমাদের কাছে nums নামে একটি সংখ্যার তালিকা আছে, এবং আরেকটি মান k, আমাদের পরীক্ষা করতে হবে যে তালিকাটিকে সাবলিস্ট তালিকায় বিভক্ত করা সম্ভব কিনা যেমন প্রতিটি সাবলিস্টের দৈর্ঘ্য ≥ k এবং এটি কঠোরভাবে বৃদ্ধি পাচ্ছে। তালিকাটি ধারাবাহিকভাবে বিভক্ত করার প্রয়োজন নেই।

সুতরাং, যদি ইনপুটটি nums =[6, 7, 5, 10, 13] k =2 এর মতো হয়, তাহলে আউটপুটটি True হবে, কারণ বিভাজনটি [5, 6] এবং [7, 10, 13]।

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

  • c :=একটি মানচিত্র যাতে সংখ্যা এবং এর সংখ্যার উপাদান রয়েছে
  • max_count :=c এর সকল ফ্রিকোয়েন্সির সর্বোচ্চ
  • সত্য ফেরত দিন যখন max_count * k <=সংখ্যার আকার অন্যথায় মিথ্যা হয়

উদাহরণ (পাইথন)

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

from collections import Counter
class Solution:
   def solve(self, nums, k):
      c = Counter(nums)
      max_count = max([v for k, v in c.items()])
      return max_count * k <= len(nums)
ob = Solution()
nums = [6, 7, 5, 10, 13]
k = 2
print(ob.solve(nums, k))

ইনপুট

[6, 7, 5, 10, 13], 2

আউটপুট

False

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

  2. পাইথনে তালিকা কঠোরভাবে বাড়ছে বা কঠোরভাবে কমছে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে N আকারের স্প্লিট স্ট্রিং

  4. জোড় এবং বিজোড় উপাদানকে দুটি ভিন্ন তালিকায় বিভক্ত করার জন্য পাইথন প্রোগ্রাম।