ACM 括號配對問題

2021-06-21 17:02:59 字數 748 閱讀 9373

描述現在,有一行括號序列,請你檢查這行括號是否配對。

輸入

第一行輸入乙個數n(0輸出

每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no

樣例輸入

3

[(])

(])([()])

樣例輸出

no

noyes

解題思路:

括號配對問題以及進製間的轉換問題都是用棧實現的經典問題,主要解題思路是遍歷資料,若遇到左括號則進棧,遇到右括號且與棧頂元素相匹配,則棧頂元素出棧,以此步驟,直至遍歷完全部資料,判斷棧是否為空,若棧空,則括號能完全匹配,否則,必然存在左括號不能匹配

當然下面情況則可以直接判斷為不匹配:

1.當前棧為空且元素為右括號,則沒有左括號與其相匹配

2.元素為右括號,但棧頂元素為與之不能匹配的左括號

#include #include #include using namespace std;

int main()

while(k執行結果:

ACM括號配對問題

在做南陽理工 上的 第二 括號配對問題 題目要求如下 描述現在,有一行括號序列,請你檢查這行括號是否配對。輸入 第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 我的解題思路是這樣的 一...

ACM 括號配對問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes include...

ACM練習 括號配對問題

學到了 1.動態建立字串陣列的2種方法 string str new string n 使用完後需要delete str vectorstr n 使用完後不需要釋放空間,但是需要包含標頭檔案vector.h 2.標頭檔案不可使用iostram.h或者string.h,應去掉.h在後面加上using ...