# Removing elements between the two zeros

• Difficulty Level : Hard
• Last Updated : 25 May, 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(N), where N is the size of input string.

My Personal Notes arrow_drop_up