給定僅包含「(){}」六種括號的字串,請你判斷該字串中,括號的匹配是否是合法的,也就是對應括號的數量、巢狀順序完全正確。輸入格式:
第一行乙個整數t(t<=10) 其後t行每行乙個字串只包含六種字元(字串長度2e5以內)輸出格式:
對於每個字串,匹配輸出yes,否則輸出no輸入樣例:
2輸出樣例:([)]
yes no報段錯誤**段
原因:這一段會出現訪問非法記憶體的情況,char a = st.top();賦值時有可能棧空,沒有棧頂。
elseif(
(str[i]
==')')||
(str[i]
==']')||
(str[i]
=='}'))
')||(a ==
'['&& str[i]
==']'))
else
return
false
;}
ac**
#include
#include
#include
using
namespace std;
stack<
char
> st;
bool
ismatch
(string str)
else')
||(st.
top()==
'['&& str[i]
==']'))
else
return
false;}
else
return
false;}
}}return
true;}
intmain()
return0;
}
括號匹配問題 stack的利用
題目 擴號匹配問題 poj.grids.cn 描述 在某個字串 長度不超過100 中有左括號 右括號和大小寫字母 規定 與常見的算術式子一樣 任何乙個左括號都從內到外與在它右邊且距離最近的右括號匹配。其中不能匹配的左括號用 標註,不能匹配的右括號用 標註 關於輸入 第一行乙個正整數n,表示資料的組數...
STL 棧stack 例題 括號匹配)
includestackone stack 定義乙個棧,名稱為 one stack,typename是資料型別,可以是int等one stack.push a elem 將a elem放入棧 one stack.pop 出棧stack top value one stack.top top返回棧頂元...
1353 表示式括號匹配 stack
題目描述 假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。輸入 一行資料,即表示式。輸出 一行,即 yes 或 no 輸入樣例 2...