栈
qq_38232157
这个作者很懒,什么都没留下…
展开
-
CH 1801 括号画家(进阶指南,栈)
算法竞赛进阶指南,90页,栈 本题要点: 1、 用栈来模拟, 1)遇到左括号,直接入栈; 1)遇到右括号,如果栈顶的括号与之配对,则弹出栈顶的括号; 如果不配对,则将右括号入栈(这个右括号不可能有配对的左括号了) 2、求最长的括号序列: 每个括号都有一个id号(在字符串中的顺序), 右括号(当前 now)与栈顶括号配对时候, 先弹出栈顶的左括号, 此时栈顶(top) 的id和 now 的id之差,就是美观序列的长度; //当然,注意栈为空的情况 #include <cstdio> #includ原创 2020-06-13 15:23:45 · 142 阅读 · 0 评论 -
CH 1802 表达式计算4(进阶指南,栈, 中序和后续表达式)
算法竞赛进阶指南,90页,栈 本题要点: 1、一个数字可能包含多位数字,预先对字符串进行处理,得到中序表达式 queue inOrder; 我这里没有考虑到负数的情况; 2、中序表达式,通过栈进行转化为后续表达式: 运算符的优先级, 左括号 < 加减 < 乘除 < 乘方 具体步骤: 1) 遇到一个数字,输出到后续表达式; 2) 左括号,压栈; 3) 遇到右括号,弹栈,运算符输出到后续表达值,直到弹出右括号(右括号不输出到后续表达式); 4) 遇到运算符(new), 和栈顶运算符(top)比原创 2020-06-13 14:11:25 · 133 阅读 · 0 评论