day9栈与队列
题目:
https://leetcode.cn/problems/implement-queue-using-stacks/submissions/539939465/
解析:
https://programmercarl.com/0232.用栈实现队列.html#算法公开课
这道题是用两个栈实现队列,最有技巧的是pop:
int pop() {
if(stkOut.empty())
{
while(!stkIn.empty())
{
stkOut.push(stkIn.top());
stkIn.pop();
}
}
int res = stkOut.top();
stkOut.pop();
return res;
}
题目:
https://leetcode.cn/problems/implement-stack-using-queues/submissions/539940033/
解析:
https://programmercarl.com/0225.用队列实现栈.html
最有技巧的依旧是pop
int pop() {
int size = que.size() - 1;
while(size--)
{
que.push(que.front());
que.pop();
}
int res = que.front();
que.pop();
return res;
}
题目:
https://leetcode.cn/problems/valid-parentheses/submissions/539941216/
解析:
https://programmercarl.com/0020.有效的括号.html
就是要记得不匹配的三种情况,没把这个分的这么清晰:

// 第二三种情况
else if(st.empty() || st.top() != s[i]){
return false;
}
// 第一种情况
return st.empty();
题目:
https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/submissions/539941686/
解析:
https://programmercarl.com/1047.删除字符串中的所有相邻重复项.html#算法公开课
它的思维和上道题有点贵相像,
if(st.empty() || st.top() != s[i]){
// return false;
st.push(s[i]);
只是这里需要处理了,而不是直接return false 了。

浙公网安备 33010602011771号