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

পাইথনে অ্যারে থেকে ডাবলড পেয়ারের অ্যারে বের করার প্রোগ্রাম


মান লিজিয়ে একটি অ্যারে আছে nums যেতের দৈর্ঘ্য ইভেন, আমাদের চেক করতে হবে কিনা এটি রি-অর্ডার করা যায় যাতে nums[2*i+1] = 2*nums[2*i] হয় সব 0 <= i < len(nums)/2 এর জন্য।

যেমন, ইনপুট হলে nums = [4,-2,2,-4], তবে আউটপুট হবে True।

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

  • cnt := Counter(nums)

  • cnt-এর কীগুলোকে অ্যাবসোলিউট ভ্যালু অনুযায়ী সর্ট করে প্রতিটি x এর জন্য:

    • যদি cnt[x] > cnt[2*x] হয়, তবে False রিটার্ন করুন।

    • cnt[2*x] -= cnt[x]

  • True রিটার্ন করুন।

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন:

from collections import Counter
def solve(nums):
    cnt = Counter(nums)
    for x in sorted(cnt, key=abs):
        if cnt[x] > cnt[2 * x]:
            return False
        cnt[2 * x] -= cnt[x]
    return True

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

ইনপুট

[6,0,8,2,1,5]

আউটপুট

True

  1. Python দিয়ে বাইনারি ট্রিতে ভালো লিফ নোড পেয়ার সংখ্যা বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা