Description
Given a valid parentheses string s, return the nesting depth of s. The nesting depth is the maximum number of nested parentheses.
Example 1:
Input: s = "(1+(2*3)+((8)/4))+1"
Output: 3
Explanation:
Digit 8 is inside of 3 nested parentheses in the string.
Example 2:
Input: s = "(1)+((2))+(((3)))"
Output: 3
Explanation:
Digit 3 is inside of 3 nested parentheses in the string.
Example 3:
Input: s = "()(())((()()))"
Output: 3
Constraints:
1 <= s.length <= 100sconsists of digits0-9and characters'+','-','*','/','(', and')'.- It is guaranteed that parentheses expression
sis a VPS.
Solutions
Solution 1: Traversal
We use a variable d to record the current depth, initially d = 0.
Traverse the string s. When encountering a left parenthesis, increment the depth d by one and update the answer to be the maximum of the current depth d and the answer. When encountering a right parenthesis, decrement the depth d by one.
Finally, return the answer.
The time complexity is O(n), where n is the length of the string s. The space complexity is O(1).
class Solution: def maxDepth(self, s: str) -> int: ans = d = 0 for c in s: if c == '(': d += 1 ans = max(ans, d) elif c == ')': d -= 1 return ans(code-box)
