1111. Maximum Nesting Depth of Two Valid Parentheses Strings

A string is a  valid parentheses string  (denoted VPS) if and only if it consists of "(" and ")" characters only, and:

• It is the empty string, or
• It can be written as AB (A concatenated with B), where A and B are VPS’s, or
• It can be written as (A), where A is a VPS.

We can similarly define the  nesting depth  depth(S) of any VPS S as follows:

• depth("") = 0
• depth(A + B) = max(depth(A), depth(B)), where A and B are VPS’s
• depth("(" + A + ")") = 1 + depth(A), where A is a VPS.

For example,  """()()", and "()(()())" are VPS’s (with nesting depths 0, 1, and 2), and ")(" and "(()" are not VPS’s.

Given a VPS seq, split it into two disjoint subsequences A and B, such that A and B are VPS’s (and A.length + B.length = seq.length).

Now choose any such A and B such that max(depth(A), depth(B)) is the minimum possible value.

Return an answer array (of length seq.length) that encodes such a choice of A and B:  answer[i] = 0 if seq[i] is part of A, else answer[i] = 1.  Note that even though multiple answers may exist, you may return any of them.

Example 1:

Input: seq = "(()())"
Output: [0,1,1,1,1,0]

Example 2:

Input: seq = "()(())()"
Output: [0,0,0,1,1,0,1,1]

class Solution {
public:
vector<int> maxDepthAfterSplit(string seq) {
int n = seq.size(), level = 0;
vector<int> res(n);
for (int i = 0; i < n; ++i) {
if (seq[i] == '(') {
res[i] = level++ % 2;
} else {
res[i] = ++level % 2;
}
}
return res;
}
};

class Solution {
public:
vector<int> maxDepthAfterSplit(string seq) {
vector<int> res(seq.size());
for (int i = 0; i < seq.size(); ++i) {
res[i] = seq[i] == '(' ? i & 1 : (1 - i & 1);
}
return res;
}
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/1111

Maximum Nesting Depth of the Parentheses

https://leetcode.com/problems/maximum-nesting-depth-of-two-valid-parentheses-strings/

https://leetcode.com/problems/maximum-nesting-depth-of-two-valid-parentheses-strings/discuss/328841/JavaC%2B%2BPython-O(1)-Extra-Space-Except-Output

https://leetcode.com/problems/maximum-nesting-depth-of-two-valid-parentheses-strings/discuss/358419/Confused-by-this-problem-I-was-too-%3A(-Here-is-how-it-became-crystal-clear...

LeetCode All in One 题目讲解汇总(持续更新中…)

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation