問題描述
考慮一種簡單的正規表示式:
只由 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...