求助+玄关,嘤嘤嘤
  • 板块题目总版
  • 楼主Braised_fish
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/24 12:54
  • 上次更新2024/11/24 15:09:25
查看原帖
求助+玄关,嘤嘤嘤
992550
Braised_fish楼主2024/11/24 12:54

悲,题目

括号平衡

题目描述

我们定义以下的括号是平衡的:

() (()) ()(()())

而这样的括号是不平衡的:

)( ())( ((())))

给出一个偶数长度的括号序列,问最少修改多少个括号可以使其平衡。

输入格式

输入一个字符串,长度至多 100,000100,000 个字符。

输出格式

你的程序需要输出答案,最少需要添加多少括号才能保持平衡。

样例 #1

样例输入 #1

())(

样例输出 #1

2

我的代码

#include "bits/stdc++.h"
using namespace std;

int m(const string &s) {
	stack<char> stk;
	int a = 0;

	for (char c : s) {
		if (c == '(') {
			stk.push(c);
		} else if (c == ')') {
			if (stk.empty()) {
				a++;
			} else {
				stk.pop();
			}
		}
	}
	return a + stk.size();
}

int main() {
	string s;
	cin >> s;

	cout << m(s) << endl;

	return 0;
}
2024/11/24 12:54
加载中...