921. Minimum Add to Make Parentheses Valid

Difficulty:
Related Topics:
Similar Questions:

Problem

A parentheses string is valid if and only if:

You are given a parentheses string s. In one move, you can insert a parenthesis at any position of the string.

Return **the minimum number of moves required to make *s* valid**.

  Example 1:

Input: s = "())"
Output: 1

Example 2:

Input: s = "((("
Output: 3

  Constraints:

Solution (Java)

class Solution {
    public int minAddToMakeValid(String s) {
        Deque<Character> stack = new ArrayDeque<>();
        for (char c : s.toCharArray()) {
            if (c == ')') {
                if (!stack.isEmpty() && stack.peek() == '(') {
                    stack.pop();
                } else {
                    stack.push(c);
                }
            } else {
                stack.push(c);
            }
        }
        return stack.size();
    }
}

Explain:

nope.

Complexity: