如果字符串滿足一下條件之一,則可以稱(chēng)之為 有效括號(hào)字符串(valid parentheses string,可以簡(jiǎn)寫(xiě)為 VPS):
字符串是一個(gè)空字符串 ""业筏,或者是一個(gè)不為 "(" 或 ")" 的單字符。
字符串可以寫(xiě)為 AB(A 與 B 字符串連接),其中 A 和 B 都是 有效括號(hào)字符串 球散。
字符串可以寫(xiě)為 (A),其中 A 是一個(gè) 有效括號(hào)字符串 买决。
類(lèi)似地沛婴,可以定義任何有效括號(hào)字符串 S 的 嵌套深度 depth(S):
depth("") = 0
depth(A + B) = max(depth(A), depth(B)),其中 A 和 B 都是 有效括號(hào)字符串
depth("(" + A + ")") = 1 + depth(A)督赤,其中 A 是一個(gè) 有效括號(hào)字符串
例如:""嘁灯、"()()"、"()(()())" 都是 有效括號(hào)字符串(嵌套深度分別為 0躲舌、1丑婿、2),而 ")(" 没卸、"(()" 都不是 有效括號(hào)字符串 羹奉。
給你一個(gè)有效括號(hào)字符串 s,返回該字符串的 s 嵌套深度 约计。
image.png
解題思路
- 輸入s為有效括號(hào)字符串诀拭,則不用考慮奇數(shù)個(gè)括號(hào)的情況,直接用入棧出棧來(lái)判斷煤蚌。
Python3代碼
class Solution:
def maxDepth(self, s: str) -> int:
depth = 0
stack = 0
for i in range(len(s)):
if s[i] == '(':
stack += 1
if stack > depth:
depth = stack
elif s[i] == ')':
stack -= 1
return depth