কম্পিউটার

সূচী খুঁজে বের করার প্রোগ্রাম যার বাম এবং ডান উপাদানগুলির যোগফল পাইথনে সমান


ধরুন আমাদের কাছে nums নামক আইটেমগুলির একটি তালিকা আছে, আমাদেরকে সবচেয়ে ছোট সূচক i খুঁজে বের করতে হবে যাতে i এর বামদিকে থাকা সংখ্যার যোগফল i এর ডানদিকে উপস্থিত সংখ্যার যোগফলের সমান। যদি আমরা এই ধরনের কোনো সমাধান খুঁজে না পাই, তাহলে -1 ফিরে আসুন।

সুতরাং, ইনপুট যদি nums =[8,2,3,6,5,2,5,9,1,2] এর মত হয়, তাহলে আউটপুট হবে 4, কারণ ইনডেক্স 4 এর বাকি উপাদানগুলির যোগফল হল [ 8,2,3,6] =19, এবং ডানদিকে উপস্থিত উপাদানগুলির যোগফল হল [2,5,9,1,2] =19ও৷

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

  • r :=সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল

  • l :=0

  • প্রতিটি সূচকের জন্য i এবং মান x সংখ্যায়, করুন

    • r :=r - x

    • যদি r l এর মত হয়, তাহলে

      • ফেরত i

    • l :=l + x

  • রিটার্ন -1

উদাহরণ

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

def solve(nums):
   r = sum(nums)
   l = 0
   for i,x in enumerate(nums):
      r -= x
      if r == l:
         return i
      l += x
   return -1

nums = [8,2,3,6,5,2,5,9,1,2]
print(solve(nums))

ইনপুট

[8,2,3,6,5,2,5,9,1,2]

আউটপুট

4

  1. পাইথনে নোড এবং ডিসেন্ডেন্টের মধ্যে পার্থক্য খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে ক্রমবর্ধমান ক্রমে সবচেয়ে বড় যোগফল এবং ফেরত যোগফল সহ k সাবলিস্টগুলি খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি গাছের সমস্ত উপাদানের যোগফল খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে নিকটতম বাম এবং ডান ছোট ছোট উপাদানগুলির মধ্যে সর্বাধিক পার্থক্য খুঁজুন