栈的应用还是相对简单的。
20. 有效的括号
150. 逆波兰表达式求值
碰到操作符就取出两个数进行操作
1047. 删除字符串中的所有相邻重复项
本来以为这个需要多次循环去找,结果看了答案发现只需要一次放入stack,因为stack栈头元素可以是实时变动的。(当删除相邻元素后)非常惊喜!
特别有趣的一件事,因为stack有出栈,所以size变了,所以stack.size()这个判断条件一直在变化,所以循环总是不能遍历完所有元素。
所以遍历stack还是静态的好。
for(int i=0;i<stack.size();i++){
sb.append(stack.getFirst());
stack.removeFirst();
}
改成:
for(char c:stack){
sb.append(c);
}