括號配對問題
描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入
第一行輸入乙個數n(0輸出
每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no
樣例輸入
3[(])
(])([()])
樣例輸出
nonoyes
解題思路:首先讀入字串,從頭遍歷,遇見左括號就放進另外乙個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 題解 括號匹...