1:问题描述
2:解题思路
用栈解决,空间复杂度O(n),空间复杂度O(n)
3:Java代码
public String removeDuplicates(String S) {Stack<Character> st = new Stack<>();for (int i = 0; i < S.length(); i++) {if (!st.empty() && S.charAt(i) == st.peek()) {st.pop();} else {st.add(S.charAt(i));}}StringBuilder res = new StringBuilder();for (Character c : st) {res.append(c);}return res.toString();}
4:Go版本代码
// 直接用切片实现func removeDuplicates(S string) string {stack := []byte{}for i := range S {if len(stack) > 0 && stack[len(stack)-1] == S[i] {stack = stack[:len(stack)-1]} else {stack = append(stack, S[i])}}return string(stack)}
