如何消除字串的內嵌括號python實現

2021-10-08 21:13:10 字數 733 閱讀 1945

給定乙個如下格式的字串 : (1,(2,3,(4,(5,6),7)), 括號 內的元素可以是數字 ,也可以是另乙個括號,實現乙個演算法消除巢狀的括號,例如把上面的表示式變成 (1,2,3,4,5,6,7),如果表示式有誤,那麼報錯 .

從問題描述可以看出,這道題要求實現兩個功能: 乙個是判斷表示式是否正確,另乙個 是消除表示式中巢狀的括號。對於判定表示式是否正確這個問題,可以從如下幾個方面來入 手 : 首先,表示式中只有數字、逗號和括號這種字元,如果有其他的字元出現,那麼是非 法表示式。其次,判斷括號是否匹配,如果碰到』(』,那麼把括號的計數器的值加上1:如果 碰到』)』,那麼判斷此時計數器的值,如果計數器的值大於1, 那麼把計數器的值減去1,否 則為非法表示式, 當遍歷完表示式後,括號計數器的值為 0,則說明括號是配對出現的, 否則 括號不配對, 表示式為非法表示式。 對於消除括號這個問題,可以通過申請乙個額外的儲存 空間,在遍歷原字串的時候把除了括號以外的字元儲存到新申請的額外的儲存空間中,這 樣就可以去掉巢狀的括號了 。 需要特別注意的是 , 字串首尾的括號還需要儲存。實現** 如下:

def remove(strs):

if strs==none:

return strs

pare_num=0

if list(strs)[0]!='(' or list(strs)[-1]!=')':

return none

sb='('

i=1while i輸出:

(1,2,3,4,5,6,7)

字串括號消除

給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常 error 例如 1,2,3 4,5,6 7 轉化為1,2,3,4,5,6,7 輸入 1,2,3 4,5,6 7 輸出 error 輸入 1,2,3,4 輸出 1,2,3,4 遍歷原始陣列,如果是左括號 設定括號標誌位加1...

消除字串中成對的括號

給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常 error 例如 1,2,3 4,5,6 7 轉化為1,2,3,4,5,6,7 例如 1,2,3 4,5,6 7 提示error。思路 遍歷原始陣列,如果是左括號 設定括號標誌位加1,如果是右括號 設定括號標誌位減一,如果...

字串消除

給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,你的目標是...