NYOJ 2 括號配對問題

2021-08-18 12:39:20 字數 806 閱讀 6996

括號配對問題

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

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

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

樣例輸入

3

[(])

(])([()])

樣例輸出

no

noyes

解題思路:首先讀入字串,從頭遍歷,遇見左括號就放進另外乙個str字元陣列中。當遇到右括號時,判斷str中的最後乙個元素與當前括號是否配對,若配對,繼續判斷下乙個括號,同時str的下標往前移乙個,指向前乙個元素。到最後以top的值來判斷是否配對。

**如下:

#include

#include

#include

using

namespace

std;

stack q;

chars[

11000

];int

main

()if(q

.top

()==

'#')

printf

("yes\n"

);else

printf

("no\n"

);while(q

.top

()!=

'#')q.

pop();

//每次判斷完之後對棧進行清理 當棧頂不是'#'時 移除棧頂元素直到棧頂為'#' }}

return0;

}

NYOJ 2 括號配對問題

第一次用棧來寫的 早上隊長講了一下,了解了下基礎,覺得c 的棧可以直接呼叫,c的棧卻要自己定義,還是該花時間好好看c 這是用c寫的 includestruct stack void initstack stack a 構造乙個空棧 void push stack a,char item 往棧裡面插入...

NYOJ 2 括號配對問題

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

NYOJ 2 括號配對問題

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