 Open in App
Not now

# Count of substrings of a Binary string containing only 1s

• Difficulty Level : Medium
• Last Updated : 30 Mar, 2022

Given a binary string of length N, we need to find out how many substrings of this string contain only 1s.

Examples:

Input: S = “0110111”
Output: 9
Explanation:
There are 9 substring with only 1’s characters.
“1” comes 5 times.
“11” comes 3 times.
“111” comes 1 time.

Input: S = “000”
Output: 0

Approach: The idea is to traverse the binary string and count the consecutive ones in the string. Below is the illustration of the approach:

• Traverse the given binary string from index 0 to length – 1
• Count the number of consecutive “1” till index i.
• For each new character str[i], there will be more substring with all character’s as “1”

Below is the implementation of the above approach:

## C++

 `// C++ implementation to find``// count of substring containing``// only ones` `#include ``using` `namespace` `std;` `// Function to find the total number``// of substring having only ones``int` `countOfSubstringWithOnlyOnes(string s)``{``    ``int` `res = 0, count = 0;``    ``for` `(``int` `i = 0; i < s.length(); i++) {``    ``count = s[i] == ``'1'` `? count + 1 : 0;``    ``res = (res + count);``    ``}``    ``return` `res;``}` `// Driver Code``int` `main()``{``    ``string s = ``"0110111"``;``    ``cout << countOfSubstringWithOnlyOnes(s)``        ``<< endl;``    ``return` `0;``}`

## Java

 `// Java implementation to find``// count of substring containing``// only ones``class` `GFG{``    ` `// Function to find the total number``// of substring having only ones``static` `int` `countOfSubstringWithOnlyOnes(String s)``{``    ``int` `res = ``0``, count = ``0``;``    ``for``(``int` `i = ``0``; i < s.length(); i++)``    ``{``        ``count = s.charAt(i) == ``'1'` `? count + ``1` `: ``0``;``        ``res = (res + count);``    ``}``    ``return` `res;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``String s = ``"0110111"``;``    ` `    ``System.out.println(countOfSubstringWithOnlyOnes(s));``}``}` `// This code is contributed by dewantipandeydp`

## Python3

 `# Python3 implementation to find``# count of substring containing``# only ones` `# Function to find the total number``# of substring having only ones``def` `countOfSubstringWithOnlyOnes(s):` `    ``count ``=` `0``    ``res ``=` `0``    ` `    ``for` `i ``in` `range``(``0``,``len``(s)):``        ``if` `s[i] ``=``=` `'1'``:``            ``count ``=` `count ``+` `1``        ``else``:``            ``count ``=` `0``;``            ` `        ``res ``=` `res ``+` `count``            ` `    ``return` `res` `# Driver Code``s ``=` `"0110111"``print``(countOfSubstringWithOnlyOnes(s))` `# This code is contributed by jojo9911`

## C#

 `// C# implementation to find count``// of substring containing only ones``using` `System;` `class` `GFG{``    ` `// Function to find the total number``// of substring having only ones``static` `int` `countOfSubstringWithOnlyOnes(``string` `s)``{``    ``int` `res = 0, count = 0;``    ` `    ``for``(``int` `i = 0; i < s.Length; i++)``    ``{``        ``count = s[i] == ``'1'` `? count + 1 : 0;``        ``res = (res + count);``    ``}``    ``return` `res;``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ``string` `s = ``"0110111"``;``    ` `    ``Console.Write(countOfSubstringWithOnlyOnes(s));``}``}` `// This code is contributed by rutvik_56`

## Javascript

 ``

Output

`9`

Time Complexity: O(n), where n is the size of the given string
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up