Leetcode 1249 移除無效的括號

2021-09-29 08:00:14 字數 747 閱讀 8762

給你乙個由 '('、')' 和小寫字母組成的字串 s。

你需要從字串中刪除最少數目的 '(' 或者 ')' (可以刪除任意位置的括號),使得剩下的「括號字串」有效。

請返回任意乙個合法字串。

有效「括號字串」應當符合以下 任意一條 要求:

空字串或只包含小寫字母的字串

可以被寫作 ab(a 連線 b)的字串,其中 a 和 b 都是有效「括號字串」

可以被寫作 (a) 的字串,其中 a 是乙個有效的「括號字串」

示例 1:

輸入:s = "lee(t(c)o)de)"

輸出:"lee(t(c)o)de"

解釋:"lee(t(co)de)" , "lee(t(c)ode)" 也是乙個可行答案。

示例 2:

輸入:s = "a)b(c)d"

輸出:"ab(c)d"

示例 3:

輸入:s = "))(("

輸出:""

解釋:空字串也是有效的

示例 4:

輸入:s = "(a(b(c)d)"

輸出:"a(b(c)d)"

1 <= s.length <= 10^5

s[i] 可能是 '('、')' 或英文小寫字母

class solution 

}while(!sk.empty())

for(int i=0;ireturn ans;

}};

LeetCode 1249 移除無效的括號

類似於括號匹配的問題,第一次自己寫的時候,提交了好幾次才過,思路就是使用棧,主要需要處理的就是找到哪些括號是匹配的那些是不匹配的。首先遇到 就進棧,遇到 需要分兩種情況,如果棧不為空的時候,說明之前有過 就出棧,代表找到一對匹配的,但是如果棧為空,說明 在還沒有出現 的時候就先出現了,那麼顯然出現的...

LeetCode 1249 移除無效的括號

題目大概的意思是輸入一組字串,字串包含小寫字母和 保留能匹配成一對的小括號,去掉多餘的 或者 答案可能會有多個,只需要輸出乙個正常的字串就可以。括號匹配,我們可以使用棧的資料結構來匹配成對的括號,遇到乙個左括號 就入棧,如果遇到乙個右括號 需要判斷棧是否為空 代表右括號前面是否有左括號跟它匹配 棧為...

Leetcode 1249 移除無效的括號 棧)

給你乙個由 和小寫字母組成的字串 s。你需要從字串中刪除最少數目的 或者 可以刪除任意位置的括號 使得剩下的 括號字串 有效。請返回任意乙個合法字串。有效 括號字串 應當符合以下 任意一條 要求 空字串或只包含小寫字母的字串 可以被寫作 ab a 連線 b 的字串,其中 a 和 b 都是有效 括號字...