藍橋杯 正則問題

2021-09-13 10:47:22 字數 981 閱讀 7308

問題描述

考慮一種簡單的正規表示式:

只由 x ( ) | 組成的正規表示式。

小明想求出這個正規表示式能接受的最長字串的長度。

例如 ((xx|***)x|(x|xx))xx 能接受的最長字串是: ******,長度是6。

輸入格式

乙個由x()|組成的正規表示式。輸入長度不超過100,保證合法。

輸出格式

這個正規表示式能接受的最長字串的長度。

樣例輸入

((xx|***)x|(x|xx))xx

樣例輸出

6資料規模和約定

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別

提交位址

解題思路:利用棧將括號去除掉,最後只剩下x和 | ,只要判斷 | 兩邊的字串哪個長就可以。(原本想直接將數字壓棧的,沒有想到兩個數字(都是個位數字,最終把他們當成乙個個位,乙個十位加在了一起)在一起相鄰的情況,所以直接將同等數量的『x』壓入棧,沒想到時間沒有超時!!!)。

ac**

#include using namespace std; 

int fun(string ss)else }}

}else

id++; }

int res=0;

int num=0;

int count=0;

while(!st.empty())else if(k=='x')else if(k=='|')

藍橋杯 正則問題

題目描述 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6 輸入 xx x x xx xx 程式應該輸出 6 思路 遇到 就遞迴呼叫函式,遇到 a 就將計數器x 遇到 就選出左右最大值,...

藍橋杯 2017初賽 正則問題 遞迴

考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6 輸入乙個由x 組成的正規表示式。輸入長度不超過100,保證合法。輸出這個正規表示式能接受的最長字串的長度。樣例輸入 xx x x xx ...

藍橋杯 正則問題(dfs,解決 的計算)

歷屆試題 正則問題 時間限制 1.0s 記憶體限制 256.0mb 問題描述 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6。輸入格式 乙個由x 組成的正規表示式。輸入長度不超過100...