logo AlgoBeat OnlineJudge
登录 注册

#215387. [NHSPC 2025] 括號問題

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

括號有許多種類,如:大括號 {}、中括號 []、以及小括號 ()

在本題中,我們僅考慮小括號。括號通常成對使用,如果一個由括號組成的序列具有巢狀結構 (nested structure),我們稱此序列為「格式正確」。

例如:

  • 序列 ()(()) 是格式正確的;
  • 序列 (()() 則不是格式正確的,因為沒辦法在滿足每個右括號只能被配對一次的條件下,讓每個左括號都能配對到它後面的其中一個右括號。

更正式的說,「格式正確」可以定義如下:

一個由括號構成的序列 為格式正確,若同時滿足以下兩個條件:

  1. 由左到右掃描 ,在過程中任一位置的右括號 ) 的數量都不超過左括號 ( 的數量。
  2. 序列中左括號的總數等於右括號的總數。

PorgramText 是一家軟體公司,正在為程式設計師開發一款全新的文字編輯器。這款編輯器將提供許多強大的功能,其中之一是自動修正輸入錯誤。

在觀察使用者的輸入行為後,PorgramText 發現許多程式設計師因打字速度太快,常常不小心多輸入左括號或右括號。為了解決這個問題,編輯器將提供一項功能:將一個可能「格式不正確」的括號序列 自動轉換為「格式正確」的序列 。在轉換過程中,唯一允許的操作是刪除左括號或右括號

PorgramText 想要讓你幫助他們:計算最少需要刪除多少個括號,才能讓 轉換成一個「格式正確」的序列。

输入格式

  • 代表括號序列的長度。
  • 是由 () 組成的括號序列。

输出格式

  • 代表最少需要刪除的括號數量。

样例

样例输入 1

6
()(())

样例输出 1

0

样例输入 2

5
(()()

样例输出 2

1

样例输入 3

3
)((

样例输出 3

3

数据范围与提示

測資限制

  • 僅包含 ()

評分說明

本題共有三組子任務,條件限制如下所示: 每一組可能包含一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。

子任務 分數 額外輸入限制
1 30 所有左括號的出現位置均早於所有右括號(因此左右括號不會交錯出現)。
2 只可能會是 。(註:只需判斷 是否為「格式正確」。)
3 40 無額外限制。