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

পাইথনে অ্যারে এলিমেন্ট শর্তানুযায়ী সাজানো সম্ভব কিনা যাচাই করা

ধরি আমাদের একটি অ্যারে আছে যার নাম nums। আমাদের যাচাই করতে হবে nums-র এলিমেন্টগুলো এমনভাবে রি-অ্যারেঞ্জ করা সম্ভব কিনা যেন নিচের শর্ত মেনে:

উদাহরণস্বরূপ, nums = [8, -4, 4, -8] হলে আউটপুট হবে True, কারণ [-4, -8, 4, 8] 식으로 সাজালে: i=0 হলে nums[1] = 2*(-4) = -8 এবং i=1 হলে nums[3] = 2*4 = 8।

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

  • freq := nums-র এলিমেন্ট ও ফ্রিকোয়েন্সির ম্যাপ
  • nums-কে absolute value অনুযায়ী সর্ট করে প্রতিটি item-এর জন্য:
    • যদি freq[item] == 0, তবে চালিয়ে যান
    • যদি freq[2*item] == 0, তবে false রিটার্ন করুন
    • freq[item] এবং freq[2*item] এক কমান
  • true রিটার্ন করুন

উদাহরণ

from collections import defaultdict

def solve(nums):
    freq = defaultdict(int)
    for item in nums:
        freq[item] += 1
    for item in sorted(nums, key=abs):
        if freq[item] == 0:
            continue
        if freq[2 * item] == 0:
            return False
        freq[item] -= 1
        freq[2 * item] -= 1
    return True

nums = [8, -4, 4, -8]
print(solve(nums))

ইনপুট

[8, -4, 4, -8]

আউটপুট

True
  1. পাইথনে যাচাই করুন অ্যারে প্যালিনড্রোম কিনা

  2. পাইথনে তালিকার প্রতিটি উপাদানের ডানে ছোট উপাদান সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে লিস্টের স্ট্রিং এলিমেন্ট কনক্যাটেনেট করে দেওয়া স্ট্রিং তৈরি করা যায় কিনা যাচাই করুন

  4. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা