Leecode 1111 有效括號的巢狀深度

2021-10-04 16:36:39 字數 1017 閱讀 5335

題目描述:

有效括號字串 定義:對於每個左括號,都能找到與之對應的右括號,反之亦然。詳情參見題末「有效括號字串」部分。

巢狀深度 depth 定義:即有效括號字串巢狀的層數,depth(a) 表示有效括號字串 a 的巢狀深度。詳情參見題末「巢狀深度」部分。

有效括號字串型別與對應的巢狀深度計算方法如下圖所示:

給你乙個「有效括號字串」 seq,請你將其分成兩個不相交的有效括號字串,a 和 b,並使這兩個字串的深度最小。

不相交:每個 seq[i] 只能分給 a 和 b 二者中的乙個,不能既屬於 a 也屬於 b 。

a 或 b 中的元素在原字串中可以不連續。

a.length + b.length = seq.length

max(depth(a), depth(b)) 的可能取值最小。

劃分方案用乙個長度為 seq.length 的答案陣列 answer 表示,編碼規則如下:

answer[i] = 0,seq[i] 分給 a 。

answer[i] = 1,seq[i] 分給 b

解題思想:

這種來解決括號匹配問題的一般是用到棧的知識

這個題的括號匹配問題可以這樣考慮:當前的左括號如果是第奇數個左括號,那麼我們將其賦值為0,如果是第偶數個左括號,那麼我們將其賦值為1;同理,如果當前的右括號是第奇數個右括號的話1,那麼我們將其賦值為1,如果是第偶數個右括號的話我們將其賦值為0。當然也可以採用完全相反的策略。兩種方式我都執行過,都可以通過測試

Leecode有效的括號

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

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 與 ...