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

• Difficulty Level : Basic
• Last Updated : 27 May, 2021

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:

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.

Input : str = “001001”, m = 2
Output : YES

Input : 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 ``#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

 ``

## Javascript

 ``
Output :
`YES`

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

My Personal Notes arrow_drop_up