You are given a string s consisting of lowercase English letters. A duplicate removal consists of choosing two adjacent and equal letters and removing them.
We repeatedly make duplicate removals on s until we no longer can.
Return the final string after all such duplicate removals have been made. It can be proven that the answer is unique.
Example 1:
Input: s = "abbaca"
Output: "ca"
Explanation:
For example, in "abbaca" we could remove "bb" since the letters are adjacent and equal, and this is the only possible move. The result of this move is that the string is "aaca", of which only "aa" is possible, so the final string is "ca".
Input: s = "azxxzy"
Output: "ay"
s consists of lowercase English letters.The problem requires removal of adjacent duplicates in the given string s. This can be efficiently solved using a stack. The basic idea is to iterate over each character of the string, and use a stack to keep track of characters, ensuring that whenever two consecutive characters are the same, we pop them from the stack, effectively removing those duplicates.
c in the string s.c.c onto the stack.s. Each character is pushed and popped from the stack at most once.