題目描述:
有效括號字串為空("")
、"(" + a + ")"
或a + b
,其中a
和b
都是有效的括號字串,+
代表字串的連線。例如,""
,"()"
,"(())()"
和"(()(()))"
都是有效的括號字串。
如果有效字串s
非空,且不存在將其拆分為s = a+b
的方法,我們稱其為原語(primitive),其中a
和b
都是非空有效括號字串。
給出乙個非空有效字串s
,考慮將其進行原語化分解,使得:s = p_1 + p_2 + ... + p_k
,其中p_i
是有效括號字串原語。
對s
進行原語化分解,刪除分解中每個原語字串的最外層括號,返回s
。
示例1:
示例2:
示例3:
"""#思路:記錄每個外層括號的下標值,之後在重構括號字串的時候去掉外層括號
if len(s) == 0:
return ""
count = 1
temp = [0]
for i in range(1,len(s)):
#判斷其是否為外層括號的最左邊
if count == 0:
if '(' == s[i]:
count = count + 1
else:
count = count - 1
#判斷其是否是外層括號的最右邊
if count == 0:
res = ""
for i in range(len(temp)/2):
res = res + s[temp[2*i]+1:temp[2*i+1]]
return res
菜鳥一枚,**僅供參考,如有問題,望指正~
1021 刪除最外層的括號
有效括號字串為空 a 或 a b,其中 a 和 b 都是有效的括號字串,代表字串的連線。例如,和 都是有效的括號字串。如果有效字串 s 非空,且不存在將其拆分為 s a b 的方法,我們稱其為原語 primitive 其中 a 和 b 都是非空有效括號字串。給出乙個非空有效字串 s,考慮將其進行原語...
1021 刪除最外層的括號
有效括號字串為空 a 或 a b,其中 a 和 b 都是有效的括號字串,代表字串的連線。例如,和 都是有效的括號字串。如果有效字串 s 非空,且不存在將其拆分為 s a b 的方法,我們稱其為原語 primitive 其中 a 和 b 都是非空有效括號字串。給出乙個非空有效字串 s,考慮將其進行原語...
1021 刪除最外層的括號
有效括號字串為空 a 或 a b,其中 a 和 b 都是有效的括號字串,代表字串的連線。例如,和 都是有效的括號字串。如果有效字串 s 非空,且不存在將其拆分為 s a b 的方法,我們稱其為原語 primitive 其中 a 和 b 都是非空有效括號字串。給出乙個非空有效字串 s,考慮將其進行原語...