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 了。

posted @ 2024-06-17 00:11  zhangenigma  阅读(11)  评论(0)    收藏  举报