LeetCode 1249 移除無效的括號

2021-10-09 14:22:23 字數 1214 閱讀 7168

類似於括號匹配的問題,第一次自己寫的時候,提交了好幾次才過,思路就是使用棧,主要需要處理的就是找到哪些括號是匹配的那些是不匹配的。首先遇到『(』就進棧,遇到『)』需要分兩種情況,如果棧不為空的時候,說明之前有過『(』,就出棧,代表找到一對匹配的,但是如果棧為空,說明『)』在還沒有出現『(』的時候就先出現了,那麼顯然出現的都是不匹配的,我們將這些不匹配的存入陣列中,最後遍歷完,在判斷棧是否為空,如果不為空,說明還有沒有匹配的『(』,這些也是不匹配的。知道所以不匹配的情況,就可以將這些不匹配的換成乙個字串中本來沒有的字元,給出的**中,我替換成了3,然後再替換成空字串就可以了。

參考**:

public string minremovetomakevalid

(string s)

if(c[i]

==')'

)else}}

for(

int i =

0; i < res; i++

)while

(!stack.

isempty()

) string str = string.

valueof

(c);

str = str.

replace

("3",""

);return str;

}

另一種解法用乙個boolean陣列標記每乙個位置,是否是匹配的,

參考**:

public string minremovetomakevalid

(string s)

if(s.

charat

(i)==

')')

else}}

for(

int i =

0; i < s.

length()

; i++)}

return result.

tostring()

;}

Leetcode 1249 移除無效的括號

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

LeetCode 1249 移除無效的括號

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

Leetcode 1249 移除無效的括號 棧)

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