Count of substrings of a Binary string containing only 1s
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
Time Complexity: O(n), where n is the size of the given string
Auxiliary Space: O(1)
Please Login to comment...