কম্পিউটার

পাইথনে বাইনারি স্ট্রিং-এ সমস্ত 1s সহ সাবস্ট্রিং গণনা করার প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি স্ট্রিং s আছে। আমাদের কেবলমাত্র "1" ধারণ করে এমন সাবস্ট্রিংগুলির সংখ্যা খুঁজে বের করতে হবে। উত্তরটি খুব বড় হলে, ফলাফলটি 10^9+7 দ্বারা পরিবর্তন করুন।

সুতরাং, যদি ইনপুটটি s ="100111" এর মত হয়, তাহলে আউটপুট হবে 7, কারণ শুধুমাত্র "1" s যুক্ত সাবস্ট্রিংগুলি হল ["1", "1", "1", "1", "11" , "11" এবং "111"]

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

  • a :=0
  • গণনা :=0
  • আমি 0 থেকে s - 1 এর পরিসরের জন্য, কর
    • যদি s[i] "0" এর মত হয়, তাহলে
      • a :=0
    • অন্যথায়,
      • a :=a + 1
      • গণনা :=গণনা + a
  • রিটার্ন গণনা

উদাহরণ

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

def solve(s):
   a = 0
   count = 0
   for i in range(len(s)):
      if s[i] == "0":
         a = 0
      else:
         a += 1
         count += a
   return count

s = "100111"
print(solve(s))

ইনপুট

"100111"

আউটপুট

7

  1. একটি স্ট্রিং-এ সমস্ত সাবস্ট্রিং খুঁজে পেতে C# প্রোগ্রাম

  2. পাইথনে s-এ স্বতন্ত্র সাবস্ট্রিংয়ের সংখ্যা গণনা করার জন্য প্রোগ্রাম

  3. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথনে প্রদত্ত সূচকের সাথে স্ট্রিং এলোমেলো করার প্রোগ্রাম