কম্পিউটার

পাইথনে ভাল খাবার গণনা করুন


একটি ভাল খাবারে ঠিক দুটি ভিন্ন খাদ্য আইটেম থাকে যার সুস্বাদু পরিমাণ দুটি শক্তির সমান। আপনি একটি ভাল খাবার তৈরি করতে যেকোনো দুটি ভিন্ন খাবার বেছে নিতে পারেন।

ধরা যাক, আমরা পূর্ণসংখ্যার একটি অ্যারে দিয়েছি যেখানে arr[i] হল খাবারের ith আইটেমের সুস্বাদু, এই তালিকা থেকে আপনি কতগুলি ভাল খাবার তৈরি করতে পারেন তা ফেরত দিন৷

উদাহরণস্বরূপ,

ইনপুট-1

arr[ ] = {1, 3, 5, 7, 9}

আউটপুট

4

ব্যাখ্যা − ভাল খাবার হল (1,3), (1,7), (3,5) এবং, (7,9)। তাদের নিজ নিজ যোগফল হল 4, 8, 8, এবং 16, যার সবকটিই 2 এর ক্ষমতা।

ইনপুট-2

arr[ ]= {1,1,1,3,3,3,7}

আউটপুট

15

ব্যাখ্যা − ভাল খাবার হল (1,1) 3 উপায়ে, (1,3) 9 উপায়ে এবং (1,7) 3 উপায়ে৷

এই সমস্যা সমাধানের জন্য ব্যবহৃত পদ্ধতি

  • ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে হিসাবে ইনপুট নিন৷

  • একটি ফাংশন গণনা জোড়া সমস্ত অ্যারের উপাদানকে পূর্ণসংখ্যার তালিকা হিসাবে গ্রহণ করে।

  • ক্রমবর্ধমান ক্রমে ইনপুট অ্যারে উপাদান সাজান।

  • অ্যারের প্রতিটি উপাদানের জন্য, সর্বাধিক যোগফল খুঁজে বের করুন যাতে প্রতিটি উপাদান '2' এর শক্তিতে থাকে।

উদাহরণ

class Solution:
   def countpairs(self, arr: List[int]) -> int:
      """
         elem1 + elem2 == 1 << i
         elem1 = 2 << i - elem2
      """
      result = 0
      seen = defaultdict(int)
      arr.sort()
      for d in arr:
         n = 1
         while n <= d + d:
            ans = (ans + seen[n-d]) % (10 ** 9 + 7)
            n = n << 1
         seen[d] += 1
      return ans
sol1= Solution()
print(sol1.countpairs([1,1,1,3,3,3,7]))

আউটপুট

4

  1. পাইথনে প্রাইম গণনা করুন

  2. Python এ গণনা করুন এবং বলুন

  3. পাইথন প্রোগ্রাম একটি অ্যারের মধ্যে বিপরীত গণনা

  4. পাইথনে ক্লাস বা স্ট্যাটিক ভেরিয়েবল?