- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# JavaScript Program to Find Maximum number of 0s placed consecutively at the start and end in any rotation of a Binary String

We will be writing a JavaScript program to find the maximum number of zeros placed consecutively at the start and end of any rotation of a binary string. Our program will take a binary string as input and will return the maximum number of zeros that are placed at the start and end in any rotation of the given string. To solve this problem, we will be using string manipulation techniques to manipulate the input string and find the required output.

In the next step, we will be rotating the input string and counting the number of zeros placed at the start and end of the rotated string. We will keep rotating the string until we reach the original input string again, and keep track of the maximum number of zeros placed at the start and end during all the rotations.

Finally, we will return the maximum number of zeros as the output of our program. The program will be efficient and will run in linear time complexity, making it suitable for solving this problem even for large inputs.

## Approach

To find the maximum number of zeros placed consecutively at the start and end of any rotation of a binary string, follow these steps −

First, concatenate the original binary string with itself to form a new string.

Next, use a loop to generate all possible rotations of the binary string by moving one character from the start to the end of the new string in each iteration.

For each rotation, find the number of zeros placed consecutively at the start and end of the string.

Store the maximum number of zeros found so far in a variable.

Repeat steps 3 and 4 until all rotations have been processed.

The final value stored in the variable is the maximum number of zeros placed consecutively at the start and end in any rotation of the binary string.

## Example

Here is an example of a JavaScript program that finds the maximum number of zeros placed consecutively at the start and end of any rotation of a binary string −

function maxZeros(binaryString) { // Store the number of zeros in the original binary string let originalZeros = 0; while (binaryString[originalZeros] === "0") { originalZeros++; } // Store the number of zeros in each rotation of the binary string let maxZeros = originalZeros; let rotatedZeros = originalZeros; for (let i = 1; i < binaryString.length; i++) { if (binaryString[i] === "0") { rotatedZeros++; } else { rotatedZeros = 0; } maxZeros = Math.max(maxZeros, rotatedZeros); } // Return the maximum number of zeros return maxZeros; } // Example usage let binaryString = "0110001111"; let maxZerosCount = maxZeros(binaryString); console.log("The maximum number of zeros is: " + maxZerosCount);

## Explanation

The function

**maxZeros**takes a binary string as input and returns the maximum number of zeros placed consecutively at the start and end of any rotation of that string.The first step is to find the number of zeros in the original binary string. This is done by using a

**while**loop that continues until a character other than 0 is encountered. The number of zeros is stored in the**originalZeros**variable.The next step is to find the number of zeros in each rotation of the binary string. To do this, we use a

**for**loop that starts from**1**and goes up to the length of the binary string. In each iteration of the loop, we check if the current character is**0**. If it is, we increment the**rotatedZeros**count. If it is not, we reset the**rotatedZeros**count to 0. Finally, we update the maximum number of zeros seen so far by comparing**rotatedZeros**with**maxZeros**and keeping the larger of the two.After the loop, the maximum number of zeros is returned.

Finally, the example usage of the function shows how it can be called with a binary string, and the result is logged to the console.