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

• Difficulty Level : Medium
• Last Updated : 20 Apr, 2021

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

Examples:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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`

My Personal Notes arrow_drop_up