題目:
題解:
代碼如下:
class Solution {
public:
//思路:將原字符串的深度一半給A,一半給B,這樣深度就最小了。如果有一層的括號很多,放同一個子序列也沒有影響
//具體實現:深度爲奇數的放一個子序列,深度爲偶數放另一個子序列
vector<int> maxDepthAfterSplit(string seq) {
int n=seq.size();
vector<int> res(n,0);
int depth=0;
for(int i=0;i<n;++i){
if(seq[i]=='('){
depth++;
//偶數放在序列B
if((depth&1)==0)res[i]=1;
}
else{
if((depth&1)==0)res[i]=1;
depth--;
}
}
return res;
}
};