合法的括號串(C 實訓題,棧)

2021-10-08 21:40:38 字數 914 閱讀 6149

【問題描述】

乙個合法的括號串,是指只包含括號的串,如果滿足如下條件:

(1)<> () {} 這四對括號是合法的;

(2)如果r是合法括號串,則 ® [r] 也是;

(3)如果r,s是合法括號串,則rs也是;

所以<<>> , [<>{}(())],[()]是合法的括號串,而)(,[( ])就不是。

【輸入形式】

輸入第一行正整數t (10 ≤ n ≤ 100),表示有多少組測試資料。

後面有t行,每行乙個只包含8種括號符號的括號串。

40%的括號串的長度l 2 ≤ l≤ 20;

30%的括號串的長度l 2 ≤ l≤ 200;

20%的括號串的長度l 2 ≤ l≤ 2000;

10%的括號串的長度l 2 ≤ l≤ 20000;

【輸出形式】

對於每組測試資料,如果括號串是合法的,輸出「yes」(輸出沒有引號)佔一行,否則,輸出「no」(輸出沒有引號)佔一行。

【樣例輸入】

6<<>>

)([<>{}(())]

[()]

[(])

<([

else

if(str[i]

=='>'

)else

}else

if(str[i]

==')'

)else

}else

if(str[i]

==']'

)else

}else

if(str[i]

=='}'

)else}}

bool b=s.

empty()

,d=s1.

empty()

;if(b&&d)

else

}return0;

}

Engine 字串(C 實訓題)

輸入形式 輸入包含多組資料。每組資料首先有一行包含乙個整數n 1 n 1000 表示 的數目,n 0表示輸入結束。每組 的資訊第一行是 的標題,由字母 大小寫均可 和空格組成,不超過10個詞,每個詞不超過20個字元,標題總共不超過250個字元。第二行是乙個整數k 0 k 108 表示它被引用的次數。...

dp 棧 找括號串中最長合法子串

思路 是否合法,最簡單判斷方法是用棧。只有一種括號,棧中存放元素只需要左括號的下標。每一次遇到 就把棧頂的乙個左括號下標和當前下標一起壓入vector中,將這個vector排序,就是所有合法子串的下標。遍歷這個vector,找連續的最長值就可以。排序複雜度o nlogn 除此之外遍歷一次字串,一次v...

飛彈防禦系統(C 實訓題)

問題描述 某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲...