Skip to content
Related Articles

Related Articles

Improve Article

Count of substrings of a Binary string containing only 1s

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

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 <bits/stdc++.h>
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




<script>
 
// Javascript implementation to find
// count of substring containing
// only ones
 
// Function to find the total number
// of substring having only ones
function countOfSubstringWithOnlyOnes(s)
{
    var res = 0, count = 0;
    for (var i = 0; i < s.length; i++) {
    count = s[i] == '1' ? count + 1 : 0;
    res = (res + count);
    }
    return res;
}
 
// Driver Code
var s = "0110111";
document.write( countOfSubstringWithOnlyOnes(s));
 
</script>
Output
9

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :