theshy

博客园 首页 新随笔 联系 订阅 管理

左神 中级提升班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;
    }
}

 

posted on 2022-01-02 19:05  tziSher  阅读(34)  评论(0编辑  收藏  举报