মান লিজিয়ে একটি অ্যারে আছে 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