# 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.

Updated on: 15-Mar-2023

51 Views