左神 中级提升班2-2
给你一个字符串,可以在任意位置添加括号,将其转化为一个完整的字符串,返回至少需要添加多少个括号
()()(())是完整的 ()(是不完整的
最小子结构一定是()
class Solution { public int f(String s) { char[] chs = s.toCharArray(); int cnt = 0, ans = 0; for (int i = 0; i < s.length(); i++) { if (chs[i] == '(') { cnt++; } else { cnt--; if (cnt < 0) { ans++; cnt = 0; } } } ans += cnt; return ans; } }
左神 中级提升班 3-1
给定一个合法的括号序列,计算其深度
空串的深度是0
()()()的深度是1
((()))的深度是3
class Solution { public int f(String s) { char[] chs = s.toCharArray(); int cnt = 0, ans = -1; for (int i = 0; i < s.length(); i++) { if (chs[i] == '(') { cnt++; ans = Math.max(ans, cnt); } else { cnt--; } } ans += cnt; return ans; } }