平衡的括號問題

2022-01-31 01:22:46 字數 919 閱讀 8602

平衡的括號 

要運用棧的一些知識,stl。

棧的特點是「先進後出」。

標頭檔案是,宣告方式:"stacks"。

主要操作:

push():把元素壓入「棧頂」,又稱入棧

pop():從棧頂把元素彈出,出棧

top():取棧頂元素(但不刪除)

size():測棧長(個數)

empty():判斷棧是否為空

題目大意:

輸入乙個包含「()」和「」的括號序列,判斷是否合法。具體規則如下:

(1)空串合法;(2)如果a和b都合法,則ab合法;(3)如果a合法則(a)和[a]都合法。

題目分析:

先要測出字串的長度,如果串長==0,是合法的,輸出yes。接著判斷第乙個字元,如果是]和),也為no

然後,就是在進行出入棧的操作了。

其實,還可以判斷字元長度,如果為奇數也輸出no,經過基本的處理,效率會高一些

**部分:

1 #include2 #include

3 #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...