刪除最外層的括號 python

2021-09-21 06:20:48 字數 1448 閱讀 1481

題目描述:

有效括號字串為空("")"(" + a + ")"a + b,其中ab都是有效的括號字串,+代表字串的連線。例如,"""()""(())()""(()(()))"都是有效的括號字串。

如果有效字串s非空,且不存在將其拆分為s = a+b的方法,我們稱其為原語(primitive),其中ab都是非空有效括號字串。

給出乙個非空有效字串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,考慮將其進行原語...