কম্পিউটার

পাইথনে আপেক্ষিক সাজানোর অ্যারে


ধরুন আমাদের দুটি অ্যারে রয়েছে arr1 এবং arr2, arr2 এর উপাদানগুলি অনন্য এবং arr2-এর সমস্ত উপাদানগুলিও arr1 এ উপস্থিত রয়েছে। আমাদের arr1 এর উপাদানগুলিকে এমনভাবে সাজাতে হবে যাতে arr1-এ আইটেমের আপেক্ষিক ক্রম arr2-এর মতোই হয়। যদি কিছু উপাদান থাকে যা arr2 তে উপস্থিত না থাকে, তবে সেগুলিকে আরোহী ক্রমে arr1 এর শেষে স্থাপন করা উচিত। তাই যদি arr1 হয় [2,3,1,3,2,4,6,7,9,2,19], এবং arr2 হয় [2,1,4,3,9,6] এর মত, তাহলে ফলাফল হবে [2,2,2,1,4,3,3,9,6,7,19]

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

  • D নামে একটি মানচিত্র তৈরি করুন এবং arr1-এ উপস্থিত উপাদানগুলির ফ্রিকোয়েন্সি সংরক্ষণ করুন
  • দুটি অ্যারে রেস এবং টেম্প সংজ্ঞায়িত করুন
  • প্রতিটি উপাদানের জন্য i arr2 −
    • 0 থেকে D[i] – 1
        পরিসরে j-এর জন্য
      • আমি রেস-এ যোগ করুন
    • D[i] :=0
  • এর জন্য (কী, মান) D
      এ জোড়া
    • মান যদি 0 না হয়, তাহলে
      • এর জন্য i :=0 থেকে মান – 1
        • টেম্পে কী যোগ করুন
  • টেম্প অ্যারে সাজান, রেস-এর শেষে টেম্প যোগ করুন এবং রিটার্ন রিটার্ন করুন

উদাহরণ

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

class Solution(object):
   def relativeSortArray(self, arr1, arr2):
      d = {}
      for i in arr1:
         if i not in d:
            d[i]= 1
         else:
            d[i]+=1
      res = []
      temp = []
      for i in arr2:
         for j in range(d[i]):
            res.append(i)
         d[i] =0
      for k,v in d.items():
         if v:
            for i in range(v):
               temp.append(k)
      temp.sort()
      res.extend(temp)
      return res
ob1 = Solution()
print(ob1.relativeSortArray([2,3,1,4,2,4,6,7,9,2,19] ,[2,1,4,3,9,6]))

ইনপুট

[2,3,1,3,2,4,6,7,9,2,19]
[2,1,4,3,9,6]

আউটপুট

[2, 2, 2, 1, 4, 4, 3, 9, 6, 7, 19]



  1. পাইথনে মার্জ সর্ট ব্যাখ্যা কর

  2. গণনা সাজানোর জন্য পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রামে সন্নিবেশ বাছাই

  4. সন্নিবেশ সাজানোর জন্য পাইথন প্রোগ্রাম