
牛客 AB
刷题心得
郑师傅炒板栗
老师不是说你啊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AB5 点击消除
AB5 点击消除 关键思路:如何消除 + 栈 // 结合AB 3的有效括号序列,消除的思想 #include <bits/stdc++.h> using namespace std; // 辅助栈 stack<char> stk; string str; int main() { cin >> str; int lenStr = str.size(); stk.push(str[0]); // 先把第一个字符压入栈中原创 2022-04-04 23:40:15 · 465 阅读 · 0 评论 -
AB4 逆波兰表达式求值
AB4 逆波兰表达式求值 关键思路:栈,遇到数字压入栈中,遇到运算符,就弹出栈顶两个元素计算,计算后再压入栈中 先判断的是否是运算符,遇到好多坑点,注意一下;还有就是,这里有负数,所以我们用stoi这个函数来转换成数字,减少一部分麻烦; class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串vector原创 2022-04-04 23:10:25 · 290 阅读 · 0 评论 -
AB3 有效括号序列
AB3 有效括号序列 关键思路:辅助栈,匹配则消掉;代码中详细解释 class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { // write code here // 辅助栈 stack<char> stk; // 用来存储“左” ( { [原创 2022-04-04 21:53:59 · 450 阅读 · 0 评论 -
AB2 栈的压入、弹出序列
AB2 栈的压入、弹出序列 关键思路:辅助栈模拟,具体思路模拟在代码中; class Solution { public: // 解题思路:利用一个辅助栈来模拟 // 1. 栈是先入后出结构 // 2. 本题判断这个弹出序列是否可行,那么要想能弹出就得先入栈 // 3. 那么我们就用两个指针分别指向这两个序列,i指针指向pushV,j指针指向popV // - 首先若当前两个指针指向的元素相等,说明这个元素是放入栈后立马弹出的,就得++i, ++j一起移原创 2022-04-04 19:18:47 · 272 阅读 · 0 评论 -
AB7 【模板】队列
AB7 【模板】队列 hh : 队头(初始化0),tt : 队尾(初始化 -1); 一旦hh > tt 即代表队列为空 #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10; int que[N]; int hh; //队头0 int tt = -1; //队尾-1 // 当 hh > tt时,即队列为空 string op; //操作的名称 // 队列是先进先出的,从队尾进入,从队头出去 vo原创 2022-04-04 15:12:15 · 321 阅读 · 0 评论 -
AB1 【模板】栈
AB1 【模板】栈 tt == 0 代表栈是空的(判断栈空方便),tt 为指向栈顶的“指针”; push x, 往栈顶插入x; pop 栈不空就可以弹出,弹出的时候,还要输出该数; top 栈不空就可以获得栈顶元素,记得输出该数; #include <bits/stdc++.h> using namespace std; // 模拟栈,0就代表栈空 const int N = 1e6 + 10; int stk[N]; int tt; void pushOP(int k) { st原创 2022-04-04 14:16:54 · 280 阅读 · 0 评论