কম্পিউটার

পাইথনে দুটি অ্যারে II এর ছেদ


ধরুন আমাদের দুটি অ্যারে A এবং B আছে, এই অ্যারেতে কয়েকটি উপাদান রয়েছে। তাদের ছেদ খুঁজে বের করতে হবে। সুতরাং যদি A =[1, 4, 5, 3, 6], এবং B =[2, 3, 5, 7, 9] হয়, তাহলে ছেদ হবে [3, 5]

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

  • দুটি অ্যারে A এবং B নিন
  • যদি A-এর দৈর্ঘ্য B-এর দৈর্ঘ্যের চেয়ে ছোট হয়, তাহলে তাদের অদলবদল করুন
  • অ্যারের উপাদানগুলির ফ্রিকোয়েন্সি গণনা করুন এবং তাদের m এ সংরক্ষণ করুন
  • B এর প্রতিটি উপাদান e এর জন্য, যদি e m তে থাকে এবং ফ্রিকোয়েন্সি শূন্য হয় না,
    • ফ্রিকোয়েন্সি m[e] 1 দ্বারা হ্রাস করুন
    • ফলিত অ্যারেতে e ঢোকান
  • ফলাফল অ্যারে ফেরত দিন

উদাহরণ

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

class Solution(object):
   def intersect(self, nums1, nums2):
      """
      :type nums1: List[int]
      :type nums2: List[int]
      :rtype: List[int]
      """
      m = {}
      if len(nums1)<len(nums2):
         nums1,nums2 = nums2,nums1
      for i in nums1:
         if i not in m:
            m[i] = 1
         else:
            m[i]+=1
      result = []
      for i in nums2:
         if i in m and m[i]:
            m[i]-=1
            result.append(i)
      return result
ob1 = Solution()
print(ob1.intersect([1,4,5,3,6], [2,3,5,7,9]))

ইনপুট

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

আউটপুট

[3,5]

  1. ইন্টারসেকশন() ফাংশন পাইথন

  2. পাইথনে দুটি অ্যারের ছেদ (ল্যাম্বডা এক্সপ্রেশন এবং ফিল্টার ফাংশন)

  3. Heapq ব্যবহার করে পাইথনে দুটি সাজানো অ্যারে মার্জ করবেন?

  4. পাইথন প্রোগ্রাম দুটি তালিকার ছেদ খুঁজে বের করতে?