美文网首页
2019-12-13 刷题-2(栈)

2019-12-13 刷题-2(栈)

作者: nowherespyfly | 来源:发表于2019-12-16 17:17 被阅读0次

1021 删除最外层的括号

类似括号匹配问题,可以用栈,由于只有单种括号,也可以只用计数器来做。设置一个记录左括号的计数器,遇到右括号就减一,当减为0时,找到一个原语。
代码:

时间:100%, 空间:31.37%
class Solution {
public:
    string removeOuterParentheses(string S) {
        int index = 0, left_counter = 0;
        string T = "";
        for (int i = 0; i < S.size(); i++) {
            if (S[i] == '(')
                left_counter++;
            else {
                left_counter--;
                if (left_counter == 0) {
                    T += S.substr(index + 1, i - index - 1);
                    index = i + 1;
                }
            }
        }
        return T;
    }
};

1047 删除字符串中的所有相邻重复项

比较简单的问题,用栈就可以解决,不过需要注意扫描字符串应从右向左,这样出栈顺序就与字符串方向相同了。
代码:

时间:96.5%, 空间:100%
class Solution {
public:
    string removeDuplicates(string S) {
        stack<char> s;
        for (int i = S.size() - 1; i >= 0; i--) {
            char cur = S[i];
            if (!s.empty()) {
                if (S[i] == s.top()) {
                    s.pop();
                }
                else s.push(cur);
            }
            else s.push(cur);
        }
        string r = "";
        while (!s.empty()) {
            r += s.top();
            s.pop();
        }
        return r;
    }
};

相关文章

  • 2019-12-13 刷题-2(栈)

    1021 删除最外层的括号 类似括号匹配问题,可以用栈,由于只有单种括号,也可以只用计数器来做。设置一个记录左括号...

  • leetcode刷题-栈

    leetcode上关于栈的题目大家可以先做20,155,232,844,224,682,496. 20给定一个只包...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

  • LeetCode刷题(链表&栈)

    一、斐波那契数列https://leetcode-cn.com/problems/fibonacci-number...

  • 2019-12-10 刷题-2(栈)

    最近在学习栈,目前都在刷栈的题目。 题目序号:101-对称二叉树本题有递归和迭代两种做法,递归比较简单,判断两个子...

  • LeetCode 刷题笔记2 (栈和队列)

    重要知识 1. Java stack pop 拉出,push 压入栈顶,peek 看一眼栈顶(不改变元素),sea...

  • 包含min函数的栈

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:栈 辅助栈 题目描述: 定义栈的数据结构,请在该类型...

  • 算法刷题之最小栈

    题目: 解决思路:主类: 测试类: 算法说明:Java中,实现栈操作的位Dqueue接口,但是这里我并没有直接拿来...

  • LeetCode刷题之栈、队列

    栈(Stack) 又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线性...

  • LeetCode刷题指北----单调栈

    1.什么是单调栈?有什么好处? 定义: 单调栈就是栈内元素递增或者单调递减的栈,并且只能在栈顶操作。单调栈的维护是...

网友评论

      本文标题:2019-12-13 刷题-2(栈)

      本文链接:https://www.haomeiwen.com/subject/qknfnctx.html