কম্পিউটার

পেয়ার যোগ চেক করার জন্য ডেটা স্ট্রাকচার তৈরি করার প্রোগ্রামটি পাইথনের মানের সমান


ধরুন আমরা একটি ডাটা স্ট্রাকচার বানাতে চাই যার দুটি পদ্ধতি আছে −

  • add(val) এটি ডেটা স্ট্রাকচারে ভ্যালু মান যোগ করে
  • find(val) এটি পরীক্ষা করে যে দুটি উপাদান আছে কিনা যার যোগফল val বা না

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

সুতরাং, যদি ইনপুটটি একটি বস্তুর অবজেক্ট তৈরি করার মত হয় এবং 6, 14, 3, 8, 11, 15 সংখ্যা যোগ করে, তাহলে চেক লাইক obj.find(9), obj.find(11), obj.find(15), তাহলে আউটপুট হবে True, True, False যেহেতু 9 কে 6+3 দিয়ে গঠন করা যায়, 11 কে 3+8 দিয়ে গঠন করা যায়। এখন 15 ডেটা স্ট্রাকচারে উপস্থিত কিন্তু দুটি সংখ্যার যোগফল 15 এর সমান নয়৷

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

  • নির্মাণকারীকে সংজ্ঞায়িত করুন।
  • সংখ্যা :=একটি নতুন সেট
  • একাধিক :=একটি নতুন সেট
  • একটি ফাংশন সংজ্ঞায়িত করুন()। এটি val
      লাগবে
    • একাধিক মধ্যে val সন্নিবেশ করান
  • অন্যথায়,
    • সংখ্যায় val সন্নিবেশ করান
  • একটি ফাংশন সংজ্ঞায়িত করুন find()। এটি ভাল লাগবে
  • সংখ্যায় প্রতিটি n এর জন্য, করুন
    • যদি n + n val এর সমান হয়, তাহলে
      • যখন n মাল্টিপল থাকে তখন true রিটার্ন করুন
    • অন্যথায় যখন val - n সংখ্যায় থাকে, তখন
      • সত্য ফেরান
  • মিথ্যে ফেরত দিন

উদাহরণ

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

class PairSumChecker:
   def __init__(self):
      self.nums = set()
      self.multiple = set()

   def add(self, val):
      if val in self.nums:
         self.multiple.add(val)
      else:
         self.nums.add(val)

   def find(self, val):
      for n in self.nums:
         if n + n == val:
            return n in self.multiple
         elif val - n in self.nums:
            return True
      return False

obj = PairSumChecker()
obj.add(6)
obj.add(14)
obj.add(3)
obj.add(8)
obj.add(11)
obj.add(15)

print(obj.find(9))
print(obj.find(11))
print(obj.find(15))

ইনপুট

print(obj.find(9))
print(obj.find(11))
print(obj.find(15))

আউটপুট

True
True
False

  1. গাছের সমস্ত মান পরীক্ষা করার প্রোগ্রাম পাইথনে একই বা না

  2. দুটি গাছ পরীক্ষা করার প্রোগ্রামটি পাইথনে তাদের গঠন এবং মানগুলির উপর ভিত্তি করে ঠিক একই রকম

  3. পাতা ব্যতীত প্রতিটি নোডের মান পাইথনে বাচ্চাদের মূল্যের যোগফল কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. সাইক্লিক রিডানডেন্সি চেক করতে পাইথন প্রোগ্রাম