কম্পিউটার

অজগরে সংখ্যাগরিষ্ঠ ভোট পাওয়া প্রার্থীদের তালিকা তৈরির কর্মসূচি


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা রয়েছে যেখানে প্রতিটি সংখ্যা একজন প্রার্থীকে ভোট প্রদান করে। আমাদের এমন প্রার্থীদের আইডি খুঁজে বের করতে হবে যাদের ফ্লোর(n/3) থেকে বেশি ভোট আছে, অ-হ্রাস ক্রমে।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7], তাহলে আউটপুট হবে [6, 7], যেমন 6 এবং 7-এ 40 আছে ভোটের %।

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

  • উত্তর :=একটি নতুন খালি সেট
  • তালিকা সংখ্যা সাজান
  • i :=0
  • n :=সংখ্যার আকার
  • যখন আমি <সংখ্যার আকার, কর
    • যদি সংখ্যার সংঘটিত হয় [i] সংখ্যায়> (n / 3), তারপর
      • সংখ্যা [i] উত্তরে প্রবেশ করান
    • i :=i + (n / 3)
  • বাছাই ক্রমে উত্তর দিন

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

উদাহরণ

class Solution:
   def solve(self, nums):
      ans = set([])
      nums.sort()
      i = 0
      n = len(nums)
      while i < len(nums):
         if nums.count(nums[i]) > n // 3:
            ans.add(nums[i])
         i += n // 3
      return sorted(list(ans))
ob = Solution()
nums = [3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7]
print(ob.solve(nums))

ইনপুট

[3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7]

আউটপুট

[6, 7]

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

  2. পাইথন প্রোগ্রামে একটি তালিকাকে স্ট্রিংয়ে রূপান্তর করুন

  3. একটি তালিকাকে স্ট্রিং-এ রূপান্তর করতে পাইথন প্রোগ্রাম

  4. 3D তালিকা তৈরি করতে পাইথন প্রোগ্রাম।