- Related Questions & Answers
- Program to find string after removing consecutive duplicate characters in Python
- Removing adjacent duplicates from a string in JavaScript
- Program to find maximum difference of adjacent values after deleting k numbers in python
- Program to find longest number of 1s after swapping one pair of bits in Python
- Program to find shortest sublist so after sorting that entire list will be sorted in Python
- Program to find length of shortest supersequence in Python
- Program to find maximum adjacent absolute value sum after single reversal in C++
- Program to find shortest cycle length holding target in python
- Program to find string after deleting k consecutive duplicate characters in python
- Balance a string after removing extra brackets in C++
- Cell Count After Removing Corner Diagonals in Python
- Program to find distance of shortest bridge between islands in Python
- Removing nth character from a string in Python program
- Python program for removing nth character from a string
- Program to find nth sequence after following the given string sequence rules in Python

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

Suppose we have a binary string s, we can delete any two adjacent letters if they are different. Finally, we have to find the length of the smallest string that we can get if we are able to perform this operation as many times as we want.

So, if the input is like s = "1100011", then the output will be 1, as After deleting "10" we get "10011", then again delete "10", it will be "011", then delete "01", it will have left 1.

To solve this, we will follow these steps −

- stack := a new list
- for each c in s, do
- if stack is empty or top of stack is same as c, then
- push c into stack

- otherwise when top of stack is not same as c, then
- pop element from stack

- if stack is empty or top of stack is same as c, then
- return element count in stack

Let us see the following implementation to get better understanding −

class Solution: def solve(self, s): stack = [] for c in s: if not stack or stack[-1] == c: stack.append(c) elif stack[-1] != c: stack.pop() return len(stack) ob = Solution() print(ob.solve("1100011"))

"1100011"

1

Advertisements