字串匹配問題:
題目描述
字串中只含有括號 (),,<>,{},判斷輸入的字串中括號是否匹配。如果括號有互相包含的形式,從內到外必須是<>,(),,{},例如。輸入: [()] 輸出:yes,而輸入(), ()都應該輸出no。
輸入
檔案的第一行為乙個整數n,表示以下有多少個由括好組成的字串。接下來的n行,每行都是乙個由括號組成的長度不超過255的字串。
輸出
在輸出檔案中有n行,每行都是yes或no。
樣例輸入
5{}{}<><>()()
}}<<>><<>>(())(())
}}<<>><<>>(())(())
<<<>><<>>>((<>))(())[[(<>)]]
}<<<>><<>>>((<>))(())[[(<>)]]
樣例輸出
yesyes
yesyes
no思路:
這題比前兩題稍微複雜一點點,但還是比較簡單的,要注意的是這裡的括號要按照一定順序,不然輸出的是no。
那麼為了更好的比較每個括號,畢竟這裡有8鐘括號,所以我們可以用數字來表示他們,這樣不僅簡便,並且讓比較更方便。
那麼有了上面的思路,接下來就簡單多了,只要判斷讀入的括號是否與棧頂的括號相匹配,是則出棧,不是則入棧。
最後判斷棧是否被清空就可以了!
**:
#include
#include
#include
using
namespace std;
int n,t,a[
1001
],z[
1001];
char s[
1001];
void
cmd(
int a)
') a[i+1]
=8;}
}int
main()
if(a[j]
>=5)
}if(t==
0) cout<<
"yes"
/判斷是否清空
else cout<<
"no"
<}}
我講的這麼好,你還不點贊嗎(瘋狂暗示) 字串匹配問題
在字串匹配問題中,我們期待察看串t中是否含有串p。其中串t被稱為目標串,串s被稱為模式串。進行字串匹配,最簡單的乙個想法是 public class match 可以看見,這個演算法 假定m n 的複雜度是o mn 其中m是t的長度,n是p的長度。這種演算法的缺陷是匹配過程中帶有回溯 準確地說是t串...
字串匹配問題
給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小寫看作相同的字元。輸入輸入的第一行包含乙個字串s,由大小寫英文本母組成。第二行包含乙個數字,表示大小寫敏感的選項,當...
字串匹配問題
字串中只含有括號 判斷輸入的字串中括號是否匹配。如果括號有互相包含的形式,從內到外必須是 例如。輸入 輸出 yes,而輸入 都應該輸出no。第一行為乙個整數n,表示以下有多少個由括好組成的字串。接下來的n行,每行都是乙個由括號組成的長度不超過255的字串 在輸出中有n行,每行都是yes或no。5 y...