Leetcode--1111. 有效括号的嵌套深度(Java)
有效括號(hào)字符串 僅由?"(" 和?")"?構(gòu)成,并符合下述幾個(gè)條件之一:
空字符串
連接,可以記作?AB(A 與 B 連接),其中?A?和?B?都是有效括號(hào)字符串
嵌套,可以記作?(A),其中?A?是有效括號(hào)字符串
類似地,我們可以定義任意有效括號(hào)字符串 s 的 嵌套深度?depth(S):
s 為空時(shí),depth("") = 0
s 為 A 與 B 連接時(shí),depth(A + B) = max(depth(A), depth(B)),其中?A 和?B?都是有效括號(hào)字符串
s 為嵌套情況,depth("(" + A + ")") = 1 + depth(A),其中 A 是有效括號(hào)字符串
例如:"","()()",和?"()(()())"?都是有效括號(hào)字符串,嵌套深度分別為 0,1,2,而?")(" 和?"(()"?都不是有效括號(hào)字符串。
?
給你一個(gè)有效括號(hào)字符串 seq,將其分成兩個(gè)不相交的子序列?A 和?B,且?A 和?B?滿足有效括號(hào)字符串的定義(注意:A.length + B.length = seq.length)。
現(xiàn)在,你需要從中選出 任意?一組有效括號(hào)字符串?A 和?B,使?max(depth(A), depth(B))?的可能取值最小。
返回長(zhǎng)度為?seq.length 答案數(shù)組?answer?,選擇?A?還是?B?的編碼規(guī)則是:如果?seq[i]?是?A?的一部分,那么?answer[i] = 0。否則,answer[i] = 1。即便有多個(gè)滿足要求的答案存在,你也只需返回?一個(gè)。
?
示例 1:
輸入:seq = "(()())"
輸出:[0,1,1,1,1,0]
示例 2:
輸入:seq = "()(())()"
輸出:[0,0,0,1,1,0,1,1]
?
提示:
1 <= text.size <= 10000
代碼:
class?Solution?{
????public?int[]?maxDepthAfterSplit(String?seq)?{
????????int[]?nums?=?new?int[seq.length()];
????????if(seq.length()==0)
????????{
????????????return?nums;
????????}
????????int?count=1;
????????for(int?i=0;i<seq.length();i++)
????????{
????????????if(seq.charAt(i)=='(')
????????????{
????????????????count++;
????????????????nums[i]=count%2;
????????????}else{
????????????????nums[i]=count%2;
????????????????count--;
????????????}
????????}
????????return?nums;
????}
}
總結(jié)
以上是生活随笔為你收集整理的Leetcode--1111. 有效括号的嵌套深度(Java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用JDBC进行简单连接
- 下一篇: 【剑指offer】面试题65:不用加减乘