কম্পিউটার টিউটোরিয়াল

পাইথনে সংখ্যায় অপারেটর যোগ করে সর্বোচ্চ মান নির্ণয়

একটি সংখ্যার তালিকা nums দেওয়া আছে। +, -, * অপারেটর এবং বন্ধনী ব্যবহার করে সর্বোচ্চ মান বের করতে হবে।

উদাহরণ: nums = [-6, -4, -10] হলে আউটপুট ১০০, কারণ ((-6)+(-4)) * (-10) = ১০০।

সমাধানের ধাপসমূহ

  • OPS := [+, -, *] অপারেটর তালিকা
  • dp(i, j) ফাংশন দিয়ে সাবঅ্যারে i..j এর ন্যূনতম ও সর্বোচ্চ মান বের করুন
  • প্রতিটি পার্টিশন k এবং অপারেটর দিয়ে ফলাফল গণনা করুন
  • dp(0, N-1) এর সর্বোচ্চ মান ফেরত দিন

উদাহরণ কোড

import operator
class Solution:
    def solve(self, A):
        OPS = [operator.add, operator.sub, operator.mul]
        N = len(A)
        if not any(A):
            return 0
        def dp(i, j):
            if i == j:
                return [A[i], A[i]]
            low = float("inf")
            high = float("-inf")
            for k in range(i, j):
                for left in dp(i, k):
                    for right in dp(k + 1, j):
                        for op in OPS:
                            res = op(left, right)
                            if res < low:
                                low = res
                            if res > high:
                                high = res
            return [low, high]
        return dp(0, N - 1)[1]

ob = Solution()
nums = [-6, -4, -10]
print(ob.solve(nums))

ইনপুট

[-6, -4, -10]

আউটপুট

100
  1. পাইথনে অ্যারেতে বাম বা ডান দিক থেকে kটি এলিমেন্ট মুছে সর্বোচ্চ যোগফল বের করার প্রোগ্রাম

  2. পাইথনে সংখ্যা মুছে যাতে সর্বোচ্চ অ্যাডিটিভ স্কোর পাওয়া যায় সেটি বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম ডিকশনারিতে দ্বিতীয় সর্বোচ্চ মান বের করা

  4. পাইথনে তিনটি সংখ্যার মধ্যে সর্বোচ্চ মান বের করা