Given a binary string str consisting of only 0’s and 1’s. The following two operations can be performed on it:
- One digit can delete another digit i.e. a 0 can delete a 1 and vice versa.
- If at any moment, the entire string consists only 0’s or 1’s, then the respective digit is printed.
The task is to print the remaining digit which will be left at the end.
Input: str = “100”
The 1st digit is 1 and it deletes the next digit 0.
The 2nd digit, i.e. 0, is deleted and now does not exists.
Now, the 3rd digit 0 deletes the 1st digit 1.
Since now only 0 is left, the output is 0.
Input: str = “10”
Approach: For this queue data structure is used. The following steps can be followed to compute the answer:
- All the digits are added to the queue.
- Two counters are maintained as an array of size 2 del which will represent the number of floating deletes present for each digit.
- The queue is traversed until there exits at least one digit of both the types.
- Then for each digit in the queue if the delete counter for this digit is not 0, then it is deleted.
- Else, the delete counter for the opposite digit is incremented and placed back into the queue.
Below is the implementation of the above approach:
Time Complexity: O(N)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Change the given string according to the given conditions
- Expand the string according to the given conditions
- Find maximum Subsequence Sum according to given conditions
- Split the array into equal sum parts according to given conditions
- Count minimum character replacements required such that given string satisfies the given conditions
- Queries to find the last non-repeating character in the sub-string of a given string
- Find last two remaining elements after removing median of any 3 consecutive elements repeatedly
- Find last remaining element after reducing the Array
- Find the last remaining element after repeated removal of odd and even indexed elements alternately
- Find the player who is the last to remove any character from the beginning of a Binary String
- Given a string and an integer k, find the kth sub-string when all the sub-strings are sorted according to the given condition
- Remove duplicates from string keeping the order according to last occurrences
- Last element remaining by deleting two largest elements and replacing by their absolute difference if they are unequal
- Maximize the last Array element as per the given conditions
- Find the last non repeating character in string
- How to find the first and last character of a string in Java
- Find last index of a character in a string
- Remove the first and last occurrence of a given Character from a String
- Check if frequency of character in one string is a factor or multiple of frequency of same character in other string
- Find a string such that every character is lexicographically greater than its immediate next character
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.