C++中添加最小数量的括号使其有效


问题陈述

给定一个括号字符串。它可以包含左括号‘(‘或右括号’)’。我们必须找到使结果括号字符串有效的最小括号数。

示例

如果 str = “((()” 则在字符串末尾需要 2 个右括号,即‘))’

算法

  • 计算左括号数
  • 计算右括号数
  • 所需括号 = 绝对值(左括号数 - 右括号数)

示例

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int requiredParentheses(string str) {
   int openingParentheses = 0, closingParentheses = 0;
   for (int i = 0; i < str.length(); ++i) {
      if (str[i] == '(') {
         ++openingParentheses;
      } else if (str[i] == ')') {
         ++closingParentheses;
      }
   }
   return abs(openingParentheses - closingParentheses);
}
int main() {
   string str = "((()";
   cout << "Required parentheses = " << requiredParentheses(str) << endl;
   return 0;
}

当您编译并执行以上程序时。它生成以下输出 −

Required parentheses = 2

更新于:2019 年 11 月 22 日

263 次浏览

职业生涯新起点

完成课程,获得认证

开始
广告