# Check if a string has m consecutive 1’s or 0’s

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 : YES

Input : str = “1000000001”, m = 10
Output : NO

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

The approach is to count the consecutive 1’s or 0’s by traversing in the binary string. While traversing in 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 ` `#include ` `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

 ` `

Output :

```YES
```

Time Complexity: O(N), where N is the length of the binary string.

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.

My Personal Notes arrow_drop_up

## Recommended Posts:

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.