Java 詳解如何刪除字符串內的無效括號
題目:給定一個由'(', ')'和小寫字母組成的字符串,編寫一個函數,從字符串中刪除最少數目的左右括號,使剩余的為有效的括號字符串。算法思路1. 創(chuàng)建一個棧,遍歷字符串,并通過棧記錄字符串中所有左括號
題目:給定一個由'(', ')'和小寫字母組成的字符串,編寫一個函數,從字符串中刪除最少數目的左右括號,使剩余的為有效的括號字符串。
算法思路
1. 創(chuàng)建一個棧,遍歷字符串,并通過棧記錄字符串中所有左括號的位置。
2. 遍歷時遇到右括號,如果棧不為空,則彈出棧頂元素,表示該右括號有效;否則,該右括號無效,直接忽略。
3. 遍歷完畢,棧中剩余元素即無效的左括號的位置,需要刪除這些左括號。
算法實現(xiàn)
1. 實現(xiàn)算法的具體代碼實現(xiàn)。
2. 編寫本地測試代碼,驗證算法的正確性。
3. 運行本地測試方法,觀察控制臺的輸出,符合預期,本地測試通過。
4. 將算法提交到平臺進行測試,測試通過。
算法總結
通過棧的應用,將字符串中有效的左右括號保留,并將無效的括號刪除。這種方法時間復雜度為 O(n),空間復雜度為 O(n),算法效率較高。