কম্পিউটার

পাইথনে কিছু উপাদান পপ করার পরে সমস্ত স্ট্যাকের সর্বাধিক যোগফল পরীক্ষা করার প্রোগ্রাম


ধরুন আমাদের কাছে স্ট্যাকের একটি তালিকা আছে, আমরা যেকোনো স্ট্যাক বা স্ট্যাক নিতে পারি এবং এটি থেকে যে কোনো সংখ্যক উপাদান পপ করতে পারি। আমাদেরকে এমন সর্বাধিক যোগফল খুঁজে বের করতে হবে যেটি এমনভাবে অর্জন করা যেতে পারে যে সমস্ত স্ট্যাকের একই যোগফলের মান থাকে।

সুতরাং, যদি ইনপুটটি স্ট্যাকের মত হয় =[[3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2]], তাহলে আউটপুট হবে 12, যেহেতু আমরা −

এর মত অপারেশন করতে পারি
  • পপ [6] প্রথম স্ট্যাক থেকে আমরা [3, 4, 5] পাব যোগফল 12।

  • পপ [4,4] দ্বিতীয় স্ট্যাক থেকে আমরা [5, 6, 1] পাব যোগফল 12।

  • তৃতীয় স্ট্যাক থেকে আমরা [10, 2] পাই [2,2] যোগফল 12।

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

  • যোগফল :=একটি খালি মানচিত্র

  • স্ট্যাকের প্রতিটি stk-এর জন্য, করুন

    • s :=0

    • stk-এ প্রতিটি n-এর জন্য, করুন

      • s :=s + n

      • যোগফল[গুলি] :=যোগফল[গুলি] + 1

  • উত্তর :=0

  • যোগফলের প্রতিটি মূল মানের জোড়া (s, f) এর জন্য, করুন

    • যদি f>=স্ট্যাক গণনা এবং s> উত্তর, তাহলে

      • উত্তর :=s

  • উত্তর ফেরত দিন

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

উদাহরণ

from collections import defaultdict
class Solution:
   def solve(self, stacks):
      sums = defaultdict(int)
      for stk in stacks:
         s = 0
         for n in stk:
            s += n
            sums[s] += 1
         ans = 0
         for s, f in sums.items():
            if f >= len(stacks) and s > ans:
               ans = s
         return ans
ob1 = Solution()
stacks = [
   [3, 4, 5, 6],
   [5, 6, 1, 4, 4],
   [10, 2, 2, 2]
]
print(ob1.solve(stacks))

ইনপুট

stacks = [ [3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2] ]

আউটপুট

12

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

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

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

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