雜湊表 棧 20 有效的括號

2021-10-02 23:58:23 字數 409 閱讀 9272

給定乙個只包括 ()【】{}的字串,判斷是否有效。左括號必須用相同型別的右括號閉合,左括號必須以正確的順序閉合。

首先字串轉換成字元陣列,可以進行for的迴圈。用棧進行判斷,當左括號時,入棧,當右括號時,出棧,如果最後棧非空,返回錯誤。

用雜湊陣列進行輔助,增加了**的復用性。同時減少了判斷次數:鍵值對,用key代表閉括號進行判斷

//這個題的括號時成對出現的且是挨著出現的

public

boolean

isvalid

(string s)',

'else

return

false;}

else

}return stack.

isempty()

;}

20 有效的括號(棧)

判斷括號是否匹配,思路是 1 需要乙個輔助資料結構棧,將字串從第乙個字元開始逐個遍歷,如果該字元是左括號,如 則判斷該字元是否與棧頂的括號匹配。如果匹配,進入下一輪迴圈,即判斷下乙個字元。如果不匹配,直接退出函式,返回false,即無效括號。3 如果字串中每乙個字元都遍歷完了,最後看棧是否為空,如果...

20 有效的括號(括號匹配 棧)

給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 false 示例 5 輸入 s 輸出 t...

20 有效的括號 (棧的使用)

題目描述 括號 小括號 中括號 大括號 的匹配 傳送門 解法 資料結構 中作為例子引出棧的概念。用乙個棧維護,從左到右掃瞄目標字串,如果括號匹配,即滿足三種情況 s i stack.top s i stack.top s i stack.top else if s i stack.top else ...