有效的括號 棧

2022-06-07 10:42:08 字數 502 閱讀 2052

有效的括號 - leetcode 閱讀

給定乙個只包括'('')''''['']'的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

讓我們看看使用棧作為該問題的中間資料結構的演算法。

演算法初始化棧 s。

一次處理表示式的每個括號。

如果遇到開括號,我們只需將其推到棧上即可。這意味著我們將稍後處理它,讓我們簡單地轉到前面的 子表示式。

如果我們遇到乙個閉括號,那麼我們檢查棧頂的元素。如果棧頂的元素是乙個相同型別的左括號,那麼我們將它從棧中彈出並繼續處理。否則,這意味著表示式無效。

如果到最後我們剩下的棧中仍然有元素,那麼這意味著表示式無效。

複雜度分析

棧 有效括號

題目鏈結 題目分析 一道水題,利用棧就好了,當遇到 同理,當以上兩種情況都不滿足時,直接無效,後面的不用判斷 否則最後若棧空則有效,否則無效。class solution 配對成功出棧 else if s i top 1 st top top else if s i top 1 st top top...

有效的括號 棧

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

佇列 棧 有效的括號

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