給你乙個由 '('、')' 和小寫字母組成的字串 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 都是有效 括號字...