1111 有效括號的巢狀深度

2022-05-17 07:43:13 字數 445 閱讀 7718

括號匹配的問題一般都是根據棧來實現的,棧內放入括號進行匹配。

文中具體思路見leetcode解析。

知道如何計算巢狀深度,問題就很簡單了:只要在遍歷過程中,我們保證棧內一半的括號屬於序列 a,一半的括號屬於序列 b,那麼就能保證拆分後最大的巢狀深度最小,是當前最大巢狀深度的一半。要實現這樣的對半分配,我們只需要把奇數層的 ( 分配給 a,偶數層的 ( 分配給 b 即可。對於上面的例子,我們將巢狀深度為 1 和 3 的所有括號 (()) 分配給 a,巢狀深度為 2 的所有括號 ()()() 分配給 b。

此外,由於在這個問題中,棧中只會存放 (,因此我們不需要維護乙個真正的棧,只需要用乙個變數模擬記錄棧的大小。

1

class

solution

8return

ans;9}

10 };

view code

1111 有效括號的巢狀深度

有效括號字串 僅由 和 構成,並符合下述幾個條件之一 空字串 連線,可以記作 ab a 與 b 連線 其中 a 和 b 都是有效括號字串 巢狀,可以記作 a 其中 a 是有效括號字串 類似地,我們可以定義任意有效括號字串 s 的 巢狀深度 depth s s 為空時,depth 0 s 為 a 與 ...

1111 有效括號的巢狀深度

有效括號字串 僅由 和 構成,並符合下述幾個條件之一 空字串 連線,可以記作 ab a 與 b 連線 其中 a 和 b 都是有效括號字串 巢狀,可以記作 a 其中 a 是有效括號字串 類似地,我們可以定義任意有效括號字串 s 的 巢狀深度 depth s s 為空時,depth 0 s 為 a 與 ...

棧 1111 有效括號的巢狀深度

思路 維護乙個棧s,從左至右遍歷括號字串中的每乙個字元 如果當前字元是 就把 壓入棧中,此時這個 的巢狀深度為棧的高度 如果當前字元是 此時這個 的巢狀深度為棧的高度,隨後再從棧中彈出乙個 下面給出了括號序列 在每乙個字元處的巢狀深度 括號序列 下標編號 0 1 2 3 4 5 6 7 8 9 巢狀...