赞
踩
对于每个括号求出深度
class Solution { public: vector<int> maxDepthAfterSplit(string s) { //因为栈中只会存(的数量 所有用一个变量即可 int d = 0; vector<int> res; for(char c:s) { if(c == '(') { d ++; //d为当前半括号深度 //奇数一个组偶数一个组 res.emplace_back(d%2); } else { res.emplace_back(d%2); d --; } } return res; } };
对于每个半括号,只要考虑它与它前一个半括号的关系即可
class Solution { public: vector<int> maxDepthAfterSplit(string s) { vector<int> res(s.size(),0); for(int i=1;i<s.size();i++) { //相同存不同组 if(s[i] == s[i-1]) res[i] = 1 - res[i-1]; //不同存相同组 else res[i] = res[i-1]; } return res; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。