Given a binary string and a number m, the task is to check if the string has m consecutive 1’s or 0’s.
Examples:
Input : str = “001001”, m = 2
Output : YESInput : str = “1000000001”, m = 10
Output : NO
The approach is to count the consecutive 1’s or 0’s by traversing the binary string. While traversing the binary string, keep a count of the number of 1’s or 0’s appearing consecutively. If there are M consecutive 1’s or 0’s, return True, else return False.
Given below is the implementation of the above approach:
C++
// Program to check if the binary string // contains m consecutive 1's or 0's #include <bits/stdc++.h> #include <stdio.h> using namespace std; // Function that checks if // the binary string contains m // consecutive 1's or 0's bool check(string s, int m) { // length of binary string int l = s.length(); // counts zeros int c1 = 0; // counts 1's int c2 = 0; for ( int i = 0; i < l; i++) { if (s[i] == '0' ) { c2 = 0; // count consecutive 0's c1++; } else { c1 = 0; // count consecutive 1's c2++; } if (c1 == m || c2 == m) return true ; } return false ; } // Drivers Code int main() { string s = "001001" ; int m = 2; // function call if (check(s, m)) cout << "YES" ; else cout << "NO" ; return 0; } |
Java
// Program to check if the // binary string contains // m consecutive 1's or 0's import java.io.*; class GFG { // Function that checks if // the binary string contains m // consecutive 1's or 0's static boolean check(String s, int m) { // length of binary string int l = s.length(); // counts zeros int c1 = 0 ; // counts 1's int c2 = 0 ; for ( int i = 0 ; i < l; i++) { if (s.charAt(i) == '0' ) { c2 = 0 ; // count consecutive 0's c1++; } else { c1 = 0 ; // count consecutive 1's c2++; } if (c1 == m || c2 == m) return true ; } return false ; } // Drivers Code public static void main (String[] args) { String s = "001001" ; int m = 2 ; // function call if (check(s, m)) System.out.println( "YES" ); else System.out.println( "NO" ); } } // This code is contributed by anuj_67. |
Python 3
# Program to check if the binary string # contains m consecutive 1's or 0's # Function that checks if # the binary string contains m # consecutive 1's or 0's def check(s, m): # length of binary string l = len (s); # counts zeros c1 = 0 ; # counts 1's c2 = 0 ; for i in range ( 0 , l - 1 ): if (s[i] = = '0' ): c2 = 0 ; # count consecutive 0's c1 = c1 + 1 ; else : c1 = 0 ; # count consecutive 1's c2 = c2 + 1 ; if (c1 = = m or c2 = = m): return True ; return False ; # Driver Code s = "001001" ; m = 2 ; # function call if (check(s, m)): print ( "YES" ); else : print ( "NO" ); # This code is contributed # by Shivi_Agggarwal |
C#
// Program to check if the // binary string contains // m consecutive 1's or 0's using System; class GFG { // Function that checks if // the binary string contains // m consecutive 1's or 0's static bool check( string s, int m) { // length of // binary string int l = s.Length; // counts zeros int c1 = 0; // counts 1's int c2 = 0; for ( int i = 0; i < l; i++) { if (s[i] == '0' ) { c2 = 0; // count consecutive // 0's c1++; } else { c1 = 0; // count consecutive // 1's c2++; } if (c1 == m || c2 == m) return true ; } return false ; } // Driver Code public static void Main () { String s = "001001" ; int m = 2; // function call if (check(s, m)) Console.WriteLine( "YES" ); else Console.WriteLine( "NO" ); } } // This code is contributed // by anuj_67. |
PHP
<?php // Program to check if the // binary string contains m // consecutive 1's or 0's // Function that checks if // the binary string contains // m consecutive 1's or 0's function check( $s , $m ) { // length of binary // string $l = count ( $s ); // counts zeros $c1 = 0; // counts 1's $c2 = 0; for ( $i = 0; $i <= $l ; $i ++) { if ( $s [ $i ] == '0' ) { $c2 = 0; // count consecutive // 0's $c1 ++; } else { $c1 = 0; // count consecutive 1's $c2 ++; } if ( $c1 == $m or $c2 == $m ) return true; } return false; } // Driver Code $s = "001001" ; $m = 2; // function call if (check( $s , $m )) echo "YES" ; else echo "NO" ; // This code is contributed // by anuj_67. ?> |
Javascript
<script> // Program to check if the // binary string contains // m consecutive 1's or 0's // Function that checks if // the binary string contains // m consecutive 1's or 0's function check(s, m) { // length of // binary string let l = s.length; // counts zeros let c1 = 0; // counts 1's let c2 = 0; for (let i = 0; i < l; i++) { if (s[i] == '0 ') { c2 = 0; // count consecutive // 0' s c1++; } else { c1 = 0; // count consecutive // 1's c2++; } if (c1 == m || c2 == m) return true ; } return false ; } let s = "001001" ; let m = 2; // function call if (check(s, m)) document.write( "YES" ); else document.write( "NO" ); </script> |
YES
Time Complexity: O(N), where N is the length of the binary string.
Auxiliary Space: O(1), as no extra space has been used
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!