Parenthesis
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == '(') stack.push(')');
else if (chars[i] == '{') stack.push('}');
else if (chars[i] == '[') stack.push(']');
else {
if (stack.isEmpty() || stack.pop() != chars[i]) return false;
}
}
return stack.isEmpty();
}def minAddToMakeValid(self, S: str) -> int:
stack = []
res = 0
for c in S:
if c == '(':
stack.append(c)
elif c == ')':
if not stack:
res += 1
else:
stack.pop()
res += len(stack)
return resLast updated
Was this helpful?