# Removing elements between the two zeros

• Difficulty Level : Hard
• Last Updated : 07 Oct, 2022

Given an integer N which shows the size of the string and in the next line given a string which contains a string of character with only zero and one. The task is to remove a single character each time that comes in between the two zero characters.
During each turn, only one character from the string will be removed that satisfies the following condition :

• It must be surrounded by zeroes on both sides.

Examples:

Input  : str = “1001
Output : str = “1001”

Input  : str = “10101
Output : str = “1001”

Use a loop from 1 to N – 1 and check if any element lies between two zeros such that s[i – 1] = ‘0’ and s[i + 1] = ‘0’. If the condition is satisfied then, delete the character at that position, ad start searching for patterns again.

## C++

 `// C++ program to delete elements between zeros` `#include ` `using` `namespace` `std;`   `// Function to find the string ` `// after operation` `string findstring(string s)` `{` `    ``int` `n = s.length();` `        `  `    ``// Traversing through string ` `    ``for` `(``int` `i = 1; i < n - 1; i++)` `    ``{` `        ``// Checking for character ` `        ``// Between two zeros` `        ``if` `((s.at(i - 1) == ``'0'` `&& ` `            ``s.at(i + 1) == ``'0'``))` `        ``{`   `            ``// deleting the character ` `            ``// At specific position` `            ``s.erase(i, 1);` `            `  `            ``i--;` `            ``if` `(i > 0 && s.at(i - 1) == ``'0'``)` `                 ``i--;` `                        `  `            ``// updating the length ` `            ``// of the string` `            ``n = s.length();` `        ``}` `    ``}` `            `  `    ``return` `s;` `}` `    `  `// Drivers code` `int` `main() {` `    `  `    ``cout << findstring(``"100100"``);` `    ``return` `0;` `}`

## Java

 `// Java program to delete elements between zeros` `import` `java.util.*;`   `public` `class` `GFG ` `{` `    ``// Function to find the string ` `    ``// after operation` `    ``static` `String findstring(String s)` `    ``{` `        ``int` `n = s.length();` `            `  `        ``// use for loop to remove the` `        ``// character between two zeros` `        ``for` `(``int` `i = ``1``; i < n - ``1``; i++)` `        ``{ ` `            ``// Checking for character ` `            ``// Between two zeros` `            ``if` `((s.charAt(i - ``1``) == ``'0'` `&& ` `                 ``s.charAt(i + ``1``) == ``'0'``))` `            ``{` `                    `  `                ``// deleting the character ` `                ``// At specific position` `                ``s = s.substring(``0``, i) + s.substring(i + ``1``);` `                `  `                ``i--;` `                ``if` `(i > ``0` `&& s.charAt(i - ``1``) == ``'0'``)` `                    ``i--;` `                        `  `                ``// updating the length ` `                ``// of the string` `                ``n = s.length();` `            ``}` `        ``}` `            `  `        ``return` `s;` `    ``}` `    `  `    ``// Driver code` `    ``public` `static` `void` `main(String[] args)` `    ``{` `       ``String s=``"100100"``;` `       ``System.out.println(findstring(s));` `    ``}` `}`

## Python3

 `# Python3 program to delete elements` `# between zeros`   `# Function to find the string` `# after operation` `def` `findstring(s):` `    `  `    ``n ``=` `len``(s)` `    ``s ``=` `list``(s)` `    ``i ``=` `1`   `    ``# Traversing through string` `    ``while` `i < n ``-` `1``:`   `        ``# Checking for character` `        ``# Between two zeros` `        ``if` `(s[i ``-` `1``] ``=``=` `'0'` `and` `            ``s[i ``+` `1``] ``=``=` `'0'``):`   `            ``# Deleting the character` `            ``# At specific position` `            ``s.pop(i)`   `            ``i ``-``=` `1` `            ``if` `i > ``0` `and` `s[i ``-` `1``] ``=``=` `'0'``:` `                ``i ``-``=` `1`   `            ``# Updating the length` `            ``# of the string` `            ``n ``=` `len``(s)` `        ``i ``+``=` `1`   `    ``return` `''.join(s)`   `# Driver code` `if` `__name__ ``=``=` `'__main__'``:`   `    ``print` `(findstring(``'100100'``))`   `# This code is contributed by rutvik_56`

## C#

 `// C# program to delete ` `// elements between zeros` `using` `System;`   `class` `GFG` `{` `    ``// Function to find the ` `    ``// string after operation` `    ``static` `string` `findstring(``string` `s)` `    ``{` `        ``int` `n = s.Length;` `        ``string` `st = ``""``;` `        `  `        ``// Traversing through string ` `        ``for` `(``int` `i = 1; i < n - 1; i++)` `        ``{` `            ``// Checking for character ` `            ``// Between two zeros` `            ``if` `((s[i - 1] == ``'0'` `&& ` `                 ``s[i + 1] == ``'0'``))` `            ``{` `    `  `                ``// deleting the character ` `                ``// At specific position` `                ``st = s.Remove(i, 1);` `                ``s = st;` `                `  `                ``i--;` `                ``if` `(i > 0 && ` `                    ``s[i - 1] == ``'0'``)` `                    ``i--;` `                            `  `                ``// updating the length ` `                ``// of the string` `                ``n = s.Length;` `            ``}` `        ``}                 ` `        ``return` `s;` `    ``}` `    `  `    ``// Driver code` `    ``static` `void` `Main()` `    ``{` `        ``Console.Write(findstring(``"100100"``));` `    ``}` `}`   `// This code is contributed by ` `// Manish Shaw(manishshaw1)`

## Javascript

 ``

Output:

`100`

Time Complexity: O(N2), where N is the size of the input string and using erase function to delete the value in the string.
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles