কম্পিউটার

একটি অ্যারের উপাদানগুলি পাইথনে প্রদত্ত অবস্থাকে সন্তুষ্ট করে সাজানো যায় কিনা তা পরীক্ষা করুন


ধরুন আমাদের nums নামক একটি অ্যারে আছে। আমাদের পরীক্ষা করতে হবে যে সংখ্যার উপাদানগুলিকে এমনভাবে পুনর্বিন্যাস করা সম্ভব যে এটি শর্ত অনুসরণ করে −

সুতরাং, যদি ইনপুটটি nums =[8, -4, 4, -8] এর মত হয়, তাহলে আউটপুটটি True হবে যেন আমরা i =0-এর জন্য [-4, -8, 4, 8] এর মতো অ্যারে সাজাই। সংখ্যা[2*0 + 1] =2 * (-4) =-8 এর জন্য i =1, সংখ্যা[2*1 + 1] =2 * 4 =8

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

  • freq :=সংখ্যার উপাদান এবং তাদের ফ্রিকোয়েন্সি সম্বলিত একটি মানচিত্র
  • প্রতিটি আইটেমের জন্য তাদের পরম মান অনুসারে সাজানো সংখ্যায়, করুন
    • যদি freq[আইটেম] 0 হয়, তাহলে
      • পরবর্তী পুনরাবৃত্তির জন্য যান
    • যদি freq[2 * আইটেম] 0 হয়, তাহলে
      • মিথ্যে ফেরত দিন
    • freq[item] :=freq[item] - 1
    • freq[2 * আইটেম] :=freq[2 * আইটেম] - 1
  • সত্য ফেরান

উদাহরণ

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

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. প্রদত্ত অ্যারেটি মনোটোনিক কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম