leetcode 1111. 有效括号的嵌套深度

思路:要将其分为两个合法的括号,且深度最小,那么最合理的就是将原括号里的最大深度一分为2.

如何实现?

考虑用一个栈来存储 '(' . 如果当前栈内有2个 '(' 那么考虑将奇数位置的分给第1个,偶数位置的分给第2个即可。

同理当遇到')'  时,也只需要看当前栈内有几个'('.

class Solution {
public:
    vector maxDepthAfterSplit(string seq) {
        int d = 0;
        vector ans;
        for (auto c : seq)
            if (c == '(') {
                ++d;
                ans.push_back(d % 2);
            }
            else {
                ans.push_back(d % 2);
                --d;
            }
        return ans;
    }
};

 

你可能感兴趣的:(LeetCode)