921. 使括號有效的最少添加
921. Minimum Add to Make Parentheses Validjava
題目描述
給定一個由 '(' 和 ')' 括號組成的字符串 S,咱們須要添加最少的括號( '(' 或是 ')',能夠在任何位置),以使獲得的括號字符串有效。算法
從形式上講,只有知足下面幾點之一,括號字符串纔是有效的:spa
給定一個括號字符串,返回爲使結果字符串有效而必須添加的最少括號數。code
每日一算法2019/6/20Day 48LeetCode921. Minimum Add to Make Parentheses Validleetcode
示例 1:
字符串
示例 2:
get
示例 3:
io
示例 4:
class
提示:import
Java 實現
import java.util.ArrayDeque; import java.util.Deque; class Solution { public int minAddToMakeValid(String S) { Deque<Character> deque = new ArrayDeque<>(); int count = 0; for (char c : S.toCharArray()) { if (c == '(') { deque.push(c); } else if (deque.isEmpty()) { count++; } else { deque.pop(); } } return deque.size() + count; } }
參考資料