平衡的括號
要運用棧的一些知識,stl。
棧的特點是「先進後出」。
標頭檔案是,宣告方式:"stacks"。
主要操作:
push():把元素壓入「棧頂」,又稱入棧
pop():從棧頂把元素彈出,出棧
top():取棧頂元素(但不刪除)
size():測棧長(個數)
empty():判斷棧是否為空
題目大意:
輸入乙個包含「()」和「」的括號序列,判斷是否合法。具體規則如下:
(1)空串合法;(2)如果a和b都合法,則ab合法;(3)如果a合法則(a)和[a]都合法。
題目分析:
先要測出字串的長度,如果串長==0,是合法的,輸出yes。接著判斷第乙個字元,如果是]和),也為no
然後,就是在進行出入棧的操作了。
其實,還可以判斷字元長度,如果為奇數也輸出no,經過基本的處理,效率會高一些
**部分:
1 #include2 #include3 #include4 #include5
using
namespace
std;
6string isok(string
str);78
/*9*平衡括號問題,用棧解決
10*by hxiaohua 2016-11-03
11*/
12int
main()
1324
25string isok(string
str)
2637
else
3842}43
if(s0.empty())
44return
"yes";
45else
46return"no
";47 }
平衡括號問題
題意 多組案例,輸入由 和 組成的括號序列,判斷是否合法 構成平衡 合法條件如下 1 空字串合法。2 如果a和b都合法,則ab合法。3 如果a合法則 a 和 a 都合法。案例 sample input 3 sample output yes noyes 分析 括號的三種非平衡狀態 1.2.3.設計思...
Parenthesis(括號平衡串,匹配問題)
題意 給定乙個長度為n的括號平衡串,q次交換,問交換後是不還是平衡串?是輸出yes,不是輸出no。分析 未交換時,就是乙個平衡串,即括號都能夠匹配 那麼 交換的位置 可能有以下幾種情況 1.原來就是一樣的 或者 左邊的是 右邊的是 直接特判 少一種判斷會tle 2.左邊的是 右邊的是 計數判斷 in...
uva 673 平衡的括號
這道題目要求判斷括號是否平衡。由於是判斷就很簡單了,利用stl裡面的stack棧,遇到 或者 就入棧,遇到 或 就比較出棧。注意下可能輸入空字元 include include include include include include define maxn 200 using namespa...