কম্পিউটার

পাইথনে সংলগ্ন জোড়া থেকে অ্যারে পুনরুদ্ধার করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে n-1 আকারের adPair নামক একটি 2D অ্যারে রয়েছে যেখানে প্রতিটি adPair[i] দুটি উপাদান রয়েছে [ui, vi] প্রতিনিধিত্ব করে যে ui এবং vi উপাদানগুলি nums নামক একটি অ্যারেতে সংলগ্ন, সংখ্যাগুলিতে n অনন্য উপাদান রয়েছে। আমাদের অ্যারের সংখ্যা খুঁজে বের করতে হবে। যদি একাধিক সমাধান থাকে, তাদের যেকোনো একটি ফেরত দিন।

সুতরাং, ইনপুট যদি adPair =[[3,2],[4,5],[4,3]] এর মত হয়, তাহলে আউটপুট হবে [2,3,4,5]

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

  • my_map :=একটি খালি মানচিত্র যাতে বিভিন্ন কীগুলির জন্য তালিকা সংরক্ষণ করা যায়
  • adPair-এ প্রতিটি জোড়ার (a, b) জন্য, করুন
    • my_map[a] এর শেষে b ঢোকান
    • my_map[b] এর শেষে একটি সন্নিবেশ করুন
  • my_map-এ প্রতিটি কী a এবং মান তালিকা l-এর জন্য, করুন
    • যদি l এর আকার 1 এর সমান হয়, তাহলে
      • সংখ্যা :=দুটি উপাদান সহ একটি তালিকা (a, l[0])
      • লুপ থেকে বেরিয়ে আসুন
  • আমার জন্য রেঞ্জ 1 থেকে অ্যাডপেয়ারের আকার - 1, করুন
    • a, b :=my_map[সংখ্যার শেষ উপাদান]
    • যদি a সংখ্যার দ্বিতীয় শেষ উপাদানের সমান হয়, তাহলে
      • সংখ্যার শেষে b ঢোকান
    • অন্যথায়,
      • সংখ্যার শেষে একটি ঢোকান
  • রিটার্ন সংখ্যা

উদাহরণ

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

from collections import defaultdict
def solve(adPair):
   my_map = defaultdict(list)
   for a, b in adPair:
      my_map[a].append(b)
      my_map[b].append(a)

   for a, l in my_map.items():
      if len(l) == 1:
         nums = [a, l[0]]
         break
   for i in range(1, len(adPair)):
      a, b = my_map[nums[-1]]

      if a == nums[-2]:
         nums.append(b)
      else:
         nums.append(a)

   return nums

adPair = [[3,2],[4,5],[4,3]]
print(solve(adPair))

ইনপুট

[[3,2],[4,5],[4,3]]

আউটপুট

[2, 3, 4, 5]

  1. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  2. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  3. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  4. প্রদত্ত অ্যারেটি মনোটোনিক কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম