কম্পিউটার

পাইথনে অপারেটর স্থাপন করে আমরা 24 গঠন করতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের চারটি সংখ্যার একটি তালিকা রয়েছে, প্রতিটি সংখ্যা একটি নির্দিষ্ট ক্রমে 1 থেকে 9 পর্যন্ত রয়েছে। এখন যদি আমরা অপারেটরগুলি +, -, *, এবং / (/ পূর্ণসংখ্যা বিভাজন বোঝায়) সংখ্যাগুলির মধ্যে রাখি এবং বন্ধনী দিয়ে তাদের গোষ্ঠীবদ্ধ করি, তাহলে আমাদের পরীক্ষা করতে হবে যে মান 24 পাওয়া সম্ভব কি না।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[5, 3, 6, 8, 7], তাহলে আউটপুটটি True হবে, যেমন (5 * 3) - 6 + (8 + 7) =24।

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

  • একটি ফাংশন recur() সংজ্ঞায়িত করুন। এটি arr
  • লাগবে
  • উত্তর :=একটি নতুন তালিকা
  • এর জন্য 0 থেকে arr - 1 এর আকারের মধ্যে, do
    • pre :=recur(arr[index 0 থেকে i])
    • suf :=recur (arr[index i + 1 থেকে শেষ পর্যন্ত])
    • প্রি-তে প্রতিটি k-এর জন্য, করুন
      • সুফের প্রতিটি j-এর জন্য, করুন
        • উত্তরের শেষে (k + j) ঢোকান
        • উত্তরের শেষে (k - j) সন্নিবেশ করুন
        • উত্তরের শেষে (k * j) সন্নিবেশ করুন
        • যদি 0 না হয়, তাহলে
          • উত্তরের শেষে সন্নিবেশ (k / j এর ভাগফল)
  • যদি উত্তরের আকার 0 হয় এবং arr-এর আকার 1 হয়, তাহলে
    • উত্তরের শেষে arr[0] ঢোকান
  • উত্তর ফেরত দিন
  • প্রধান পদ্ধতি থেকে 24 পুনরাবৃত্ত (সংখ্যা) আছে কি না তা পরীক্ষা করে দেখুন, যদি হ্যাঁ রিটার্ন করুন True, অন্যথায় মিথ্যা

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

উদাহরণ

class Solution:
   def solve(self, nums):
      def recur(arr):
         answer = []
         for i in range(len(arr) - 1):
            pre, suf = recur(arr[: i + 1]), recur(arr[i + 1 :])
            for k in pre:
               for j in suf:
                  answer.append(k + j)
                  answer.append(k - j)
                  answer.append(k * j)
                  if j != 0:
                     answer.append(k // j)
         if len(answer) == 0 and len(arr) == 1:
            answer.append(arr[0])
         return answer
      return 24 in recur(nums)
ob = Solution()
nums = [5, 3, 6, 8, 7]
print(ob.solve(nums))

ইনপুট

[5, 3, 6, 8, 7]

আউটপুট

True

  1. পাইথনে নোড অদলবদল করে দুটি গাছ তৈরি করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. আমরা পাইথনে সমস্ত কোর্স করতে পারি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে একটি স্ট্রিং 1-থেকে-1 ম্যাপ করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?