氧气少年有一个长度为 nnn 的括号序列氧气少年的括号序列不一定是合法的。月色哥哥是一个括号序列的操作专家,他的任务是帮助氧气少年把这个括号序列变成一个合法的序列。为了把这个括号序列变合法,月色哥哥每次可以进行下面的操作: 交换任意两个相邻括号。最少操作多少次使序列合法
时间: 2024-04-16 13:25:27 浏览: 174
对于氧气少年的括号序列,我们可以使用栈的思想来解决。遍历括号序列,当遇到左括号时,将其压入栈中;当遇到右括号时,判断栈是否为空,若为空,则需要进行一次交换操作,使得右括号与前面的左括号配对;若栈不为空,则将栈顶的左括号弹出,表示找到一对配对的括号。最终,栈中剩余的左括号个数即为需要进行交换操作的次数。
以下是用Python实现的代码:
```python
def minOperations(s):
stack = []
count = 0
for c in s:
if c == '(':
stack.append(c)
else:
if len(stack) == 0:
count += 1
else:
stack.pop()
return count + len(stack)
n = int(input())
seq = input()
result = minOperations(seq)
print(result)
```
这样,我们就可以得到最少操作的次数,使得括号序列变为合法序列。
阅读全文