题目描述
给你一个括号序列,你可以进行若干次操作,每次操作可以交换某相邻两个字符
问你最少多少次操作,可以使得操作完以后的序列是一个合法的括号序列
合法括号序列的定义就是常见的定义:
空序列是合法括号序列。
如果 A 是合法括号序列,则 (A) 是合法括号序列。
如果 A,B 是合法括号序列,则 AB 是合法括号序列。
输入格式
输入初始的序列
输出格式
输出最小操作次数
输入输出样例
输入 #1复制
))((
输出 #1复制
3
说明/提示
序列长度不超过
6
10
6
10
保证初始序列左右括号数量相等,所以一定有解。
提示
括号序列可以理解成一个栈的操作,左括号表示一个元素入栈,右括号表示弹出栈顶,括号序列合法当且仅当,不能在任何时候对一个空栈进行弹出栈顶操作,也就是说,右括号不能多于左括号
#include <iostream>
using namespace std;
int main() {
return 0;
}