কম্পিউটার

পাইথনে সমান যোগফল সহ তিনটি অংশে বিভাজন অ্যারে


ধরুন আমাদের কাছে পূর্ণসংখ্যার একটি অ্যারে রয়েছে, আমাদের আউটপুট সত্য হবে যদি এবং শুধুমাত্র যদি আমরা অ্যারেটিকে তিনটি অ-খালি অংশে ভাগ করতে পারি যার যোগফল সমান৷

আনুষ্ঠানিকভাবে, আমরা অ্যারে পার্টিশন করতে পারি যদি আমরা i+1

সুতরাং ইনপুট যদি [0,2,1,-6,6,-7,9,1,2,0,1] হয়, তাহলে আউটপুটটি সত্য হবে। তিনটি অ্যারে হবে [0,2,1], [-6,6,-7,9,1] এবং [2,0,1]

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

  • temp :=সমস্ত উপাদানের যোগফল, এবং প্রয়োজনীয়_sum :=temp / 3
  • বাম থেকে ডানে ক্রমবর্ধমান যোগফল সংরক্ষণ করতে sum_left সেট করুন
  • ডান থেকে বামে ক্রমবর্ধমান যোগফল সংরক্ষণ করতে sum_right সেট করুন
  • index1 :=0 এবং index2 :=অ্যারের দৈর্ঘ্য – 1
  • যখন index1
  • যখন index1
  • index1 :=index1 + 1
  • যখন index2> index1 এবং sum_right[index2] !=আবশ্যক_সম
    • index2 :=index2 – 1
  • যদি index1
  • উদাহরণ

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

    class Solution(object):
       def canThreePartsEqualSum(self, A):
          temp = sum(A)
          if (temp%3 != 0):
             return 0
          sum_left=[0 for i in range(len(A))]
          sum_left[0] = A[0]
          sum_right=[0 for i in range(len(A))]
          sum_right[-1] = A[-1]
          for i in range(1,len(A)):
             sum_left[i] = A[i]+sum_left[i-1]
          for i in range(len(A)-2,-1,-1):
             sum_right[i] = A[i]+sum_right[i+1]
          #print(sum_left,sum_right)
          required_sum = temp/3
          index1 = 0
          index2 = len(A)-1
          while index1 < index2:
          while index1 <index2 and sum_left[index1]!=required_sum:
             index1+=1
          while index2>index1 and sum_right[index2]!=required_sum:
             index2-=1
          return index1<index2 and index1 != index2
    ob1 = Solution()
    print(ob1.canThreePartsEqualSum([0,2,2,-6,6,-7,9,2,2,0,2]))

    ইনপুট

    [0,2,1,-6,6,-7,9,1,2,0,1]

    আউটপুট

    true

    1. পাইথনে একটি 2d ​​নম্পি অ্যারেকে 1d অ্যারেতে সমতল করুন

    2. পাইথনে সর্বোচ্চ যোগফলের জন্য পার্টিশন অ্যারে

    3. পাইথনে অ্যারে পার্টিশন I

    4. পাইথনের সাথে একটি তালিকা বা অ্যারেতে পাঠ্য ফাইল কীভাবে পড়তে হয়?