• leetcode 1541


    简介

    简单来说就是栈的使用。
    思路:

    当发现一个左括号的时候压入栈中,
    遇到右括号的时候
       检查下一个字符是否依旧是左括号,
          如果不是则新增一次操作。
          判断栈中是否有元素如果有元素那么弹出
          如果没有元素那么新增一次操作
       如果依旧是左括号
          那么判断栈中是否有元素,如果有元素那么弹出
          如果没有元素那么新增一次操作
          同时 i++
    最后判断一下栈中是否有元素,如果有的话,则要新增栈中元素个数*2的操作
    

    参考链接

    https://github.com/haoel/leetcode
    https://github.com/lishaohsuai/leetCode

    code

    class Solution1406 {
    public:
        int minInsertions(string s) {
            stack<char> leftBrackets;
            int n = s.size();
            int count = 0;
            for(int i=0; i<n; i++){
                if(s[i] == '('){
                    leftBrackets.push(s[i]);
                }
                int rightBracketsNum = 0;
                if(s[i] == ')'){
                    if((i+1) < n && s[i+1] == ')'){
                        if(leftBrackets.size()){
                            leftBrackets.pop();
                        }else{
                            count++;
                        }
                        i++;
                    }else{
                        count++;
                        if(leftBrackets.size()){
                            leftBrackets.pop();
                        }else{
                            count++;
                        }
                    }
                }
            }
            count += leftBrackets.size() * 2;
            return count;
        }
    };
    
  • 相关阅读:
    2021-4-20 日报博客
    2021-4-19 日报博客
    2021-4-17 周报博客
    java web
    java web
    java web
    java
    java
    周末总结8
    java web
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/14270401.html
Copyright © 2020-2023  润新知