LeetCode 1047. Remove All Adjacent Duplicates In String
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".
Example 2:
Input: s = "azxxzy"
Output: "ay"
Constraints:
1 <= s.length <= 105
s
consists of lowercase English letters.
看了题目,就觉得应该用stack,但是没有没有用过了,只能用stringbuilder,
每次判断stringbuilder的元素跟目前的元素是否一样,一样的话,就可以删除sb的最后一个元素,如果不一样,添加上该元素就行。
我一直想着数组,list ,好像都不行的,结果stringbuilder可以。。。。
Runtime: 13 ms, faster than 87.06% of Java online submissions for Remove All Adjacent Duplicates In String.
Memory Usage: 42.8 MB, less than 79.21% of Java online submissions for Remove All Adjacent Duplicates In String.