題目描述:
現在,有一行括號序列,請你檢查這行括號是否配對。
輸入描述:
第一行輸入乙個數n(0])
樣例輸出:
nono
yes問題解決的乙個關鍵突破口在於每乙個右括號是和它最近的左括號配對的,知道這個原理,我們就有思路了。我們這裡利用棧來解決這個問題,遇到左括號進棧,遇到右括號和棧頂元素進行比較,如果相同則棧頂元素出棧,如果最後棧為空則配對,否則不配對。記得右括號的ascii碼要比左括號大1或者大2,字串和棧的空間也記得開大一點,不然oj過不了。
#includeusing namespace std;
#define maxsize 10000
#define overflow -2
typedef struct stack
stack;
bool init(stack &s);
bool push(stack &s,char c);
bool isempty(stack &s);
bool gettop(stack &s,char &c);
bool pop(stack &s);
bool match(char a,char b);
int judege2(char data);
int main()
return 0;
}bool init(stack &s)
bool push(stack &s,char c)
bool isempty(stack &s)
bool pop(stack &s,char &x)
bool gettop(stack &s,char &c)
else }
bool match(char a,char b)
int judege2(char data)
else
}} }
if(isempty(s))
cout<<"yes"
cout<<"no"
}
括號配對問題 南陽理工oj 題目2)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 運用棧,首先...
南陽oj 括號配對問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 網路 上傳者...
南陽理工acm 括號配對問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入 第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 這個題目中...