1614. Maximum Nesting Depth of the Parentheses
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
Thinking
The string is valid and at most length \(100\). Nesting depth is the maximum number of unmatched opening parentheses during a scan.
Digits and operators do not affect depth; only parentheses matter.
A counter \(d\) increases on (, updates the answer, and decreases on ). One pass suffices.
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)\).
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |