做淘宝主要看哪些网站有哪些内容三只松鼠网络营销案例分析
题解一
思路
和上一题区别不大,就是在进栈之前和栈顶元素进行比较,相同就弹出,不同就进栈,最后对栈内的元素进行输出。
代码
class Solution {public String removeDuplicates(String s) {Deque<Character> stack = new ArrayDeque<>();for(int i = 0; i < s.length(); i++){char temp = s.charAt(i);if (!stack.isEmpty() && temp == stack.peek()){stack.pop();}else{stack.push(temp);} }String result = "";while(!stack.isEmpty()){result = stack.pop() + result;}return result;}
}
总结
第一点就是要在peek()之前检查栈内是否还有元素,空栈进行peek()操作会报错。
不知道stack怎么返回字符串,以为会有什么方法,结果就是一个简单的遍历。
进行遍历时,要注意栈先进后出的机制,注意不要将字符串反转。