leetcode 1614.括号的最大嵌套深度
⭐️ 题目描述
🌟leetcode链接:括号的最大嵌套深度
ps:
使用数据结构栈来存储 (
在使用 maxDepth
变量记录栈顶 top
的最大值,当遇到 )
时删除栈顶元素。举个例子 (1)+((2))+(((3)))
,当遇到第一个 (
时 top = 1
,maxDepth = 1
代表嵌套深度最大为 1
,遇到 1
的右括号时出栈 top = 0
,在接着遇到 ((
top = 2
,这时嵌套深度说明是 2
,所以 maxDepth
取的是 top
与 maxDepth
的较大值。以此类推……
代码:
int maxDepth(char * s){int size = strlen(s);char * stack = (char*)malloc(sizeof(char) * size + 1); // 模拟栈int top = 0;int maxDepth = 0;for (int i = 0; i < size; i++) {if (s[i] == '(') {// 入栈stack[top++] = s[i];// 取当前栈的高度maxDepth = maxDepth > top ? maxDepth : top;} else if (s[i] == ')') {// 删除栈顶元素top--;}}free(stack);return maxDepth;
}