LeetCode 括号匹配深度
爱奇艺 2018 秋招 Java:
一个合法的括号匹配序列有以下定义:
- 空串
""
是一个合法的括号匹配序列- 如果 X 和 Y 都是合法的括号匹配序列,"XY"也是一个合法的括号匹配序列
- 如果 X 是一个合法的括号匹配序列,那么 "(X)" 也是一个合法的括号匹配序列
- 每个合法的括号序列都可以由以上规则生成。
例如: ""、"()"、"()()"、"((()))" 都是合法的括号序列
对于一个合法的括号序列我们又有以下定义它的深度:
- 空串""的深度是 0
- 如果字符串 X 的深度是 x,字符串 Y 的深度是 y,那么字符串 XY 的深度为 max(x,y)
- 如果 X 的深度是 x,那么字符串 (X) 的深度是 x+1
例如:()()() 的深度是 1,((())) 的深度是 3。牛牛现在给你一个合法的括号序列,需要你计算出其深度。
输入描述:
输入包括一个合法的括号序列 s,s 长度 length(2 ≤ length ≤ 50),序列中只包含'('和')'。
输出描述:
输出一个正整数,即这个序列的深度。
示例:
输入:
(())
输出:
2
代码如下:
import java.util.Scanner;
/**
* https://www.nowcoder.com/test/8246651/summary
*
* @author Snailclimb
* @date 2018 年 9 月 6 日
* @Description: TODO 求给定合法括号序列的深度
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int cnt = 0, max = 0, i;
for (i = 0; i < s.length(); ++i) {
if (s.charAt(i) == '(')
cnt++;
else
cnt--;
max = Math.max(max, cnt);
}
sc.close();
System.out.println(max);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: LeetCode 回文串
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论