Algorithm to Count the Minimum Add to Make Parentheses Valid
- 时间:2020-09-24 11:54:15
- 分类:网络文摘
- 阅读:127 次
Given a string S of ‘(‘ and ‘)’ parentheses, we add the minimum number of parentheses ( ‘(‘ or ‘)’, and in any positions ) so that the resulting parentheses string is valid.
Formally, a parentheses string is valid if and only if:
- It is the empty string, or
- It can be written as AB (A concatenated with B), where A and B are valid strings, or
- It can be written as (A), where A is a valid string.
Given a parentheses string, return the minimum number of parentheses we must add to make the resulting string valid.
Example 1:
Input: “())”
Output: 1Example 2:
Input: “(((”
Output: 3Example 3:
Input: “()”
Output: 0Example 4:
Input: “()))((”
Output: 4Note:
S.length <= 1000
S only consists of ‘(‘ and ‘)’ characters.
Parentheses Balance Algorithm
The algorithm is to count the number of the left Parentheses and, if we meet right Parentheses, we increment the answer if there is no enough left Parentheses, or we decrement the counter as to close the corresponding left Parentheses.
The final answer (the minimal add) plus the counter of the left Parentheses as we need to add to close them.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Solution { public: int minAddToMakeValid(string S) { int left = 0; int ans = 0; for (const auto &n: S) { if (n == '(') { left ++; } else { if (left > 0) { left --; } else { ans ++; } } } return ans + left; } }; |
class Solution {
public:
int minAddToMakeValid(string S) {
int left = 0;
int ans = 0;
for (const auto &n: S) {
if (n == '(') {
left ++;
} else {
if (left > 0) {
left --;
} else {
ans ++;
}
}
}
return ans + left;
}
};O(N) time as we need to scan the entire string and O(1) space, obviously.
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:奥数题:A+B=2300,小红计算时将A个位上的0漏掉了 数学题:甲乙二人同时从A地出发匀速走向B地 数学题:一种农药用药液和水按照1:1500配制而成 数学题:回收1千克废纸,可生产0.8千克再生纸 数学题:丢番图的墓志铭 数学题:如果一个圆柱体的底面直径与高相等 数学题:卧车和客车所行路程比15:16 要将糖和水按5:100的比配制成糖水 数学题:一个长方体木块与一个正方体木块刚好可以拼成一个大长方体木块 数学题:如果每间5人,则有14人没床位
- 评论列表
-
- 添加评论