কম্পিউটার

পাইথনে প্রদত্ত অ্যারেতে সমস্ত ভাল সূচক খুঁজুন


ধরুন আমাদের কাছে সংখ্যার একটি অ্যারে রয়েছে, আমাদের এই অ্যারের সমস্ত সূচক খুঁজে বের করতে হবে যাতে অ্যারে থেকে ith উপাদানটি মুছে ফেলার পরে, অ্যারেটি একটি ভাল অ্যারে হবে। আমাদের মনে রাখতে হবে যে −

  • গুড অ্যারে হল এমন একটি অ্যারে যার একটি উপাদান রয়েছে যা অন্য সব উপাদানের যোগফলের সমান।
  • 1-ভিত্তিক ইন্ডেক্সিং এখানে ব্যবহার করা হবে।

সুতরাং, যদি ইনপুটটি [10, 4, 6, 2] এর মতো হয়, তবে আউটপুট হবে [1,4] যেমন আমরা যখন A[1] সরিয়ে ফেলি তখন অ্যারেটি [4, 6, 2] এর মতো দেখাবে এবং এটি ভাল, যেমন 6 =4+2। এ

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

  • n :=A এর আকার
  • যোগ করুন :=0
  • my_map :=একটি নতুন মানচিত্র
  • আমি 0 থেকে n রেঞ্জের জন্য, কর
    • my_map[A[i]] :=my_map[A[i]] + 1
    • add :=add + A[i]
  • আমি 0 থেকে n রেঞ্জের জন্য, কর
    • k :=যোগ করুন - A[i]
    • যদি k mod 2 0 এর মত হয়, তাহলে
      • k :=k/2
      • যদি k my_map-এ, তাহলে
        • যদি (A[i] k এবং my_map[k]> 1) বা (A[i] k এর মত না হয়), তাহলে
          • i + 1 প্রদর্শন করুন

উদাহরণ

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

from collections import defaultdict
def find_indices(A):
   n = len(A)
   add = 0
   my_map = defaultdict(lambda:0)
   for i in range(n):
      my_map[A[i]] += 1
      add += A[i]
   for i in range(n):
      k = add - A[i]
      if k % 2 == 0:
         k = k >> 1
         if k in my_map:
            if ((A[i] == k and my_map[k] > 1) or (A[i] != k)):
               print((i + 1))
A = [10, 4, 6, 2]
find_indices(A)

ইনপুট

[10, 4, 6, 2]

আউটপুট

1
4

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

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

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

  4. Python Regex ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ 10+1 এর সমস্ত প্যাটার্ন খুঁজুন