描述:正則問題
考慮一種簡單的正規表示式:
只由 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是組成字串的字元,如果(xx)x的話就字串長度就是3。在遇到乙個括號時,我們會先終止當前的計算,進入到括號裡進行計算,當這一次計算結束後,我們返回這個結果繼續計算。這是乙個和深搜回溯很相似的過程。
詳情見**解釋~
#include#include#includeusing namespace std;
string str;
int pos, len, ans;
int dfs()
else if (str[pos] == ')')
else if (str[pos] == '|')
else
}res = max(num, res);//在比較|右邊的數量和左邊的數量,此刻num是右邊的數量,res是左邊的數量
return res;
}int main()
第八屆藍橋杯省賽C A組 迷宮(DFS)
迷宮地圖如下 請你計算一下,最後,有多少玩家會走出迷宮?而不是在裡邊兜圈子。請提交該整數,表示走出迷宮的玩家數目,不要填寫任何多餘的內容。如果你還沒明白遊戲規則,可以參看乙個簡化的4x4迷宮的解說圖 答案 31 思路 其實也是dfs型別的問題。通過對每乙個方個進行列舉,對他進行深度優先遍歷,找尋出路...
藍橋杯第八屆省賽
第4題 6x6的方格,沿著格仔的邊線剪開成兩部分。要求這兩部分的形狀完全相同。如圖 p1.png,p2.png,p3.png 就是可行的分割法。試計算 包括這3種分法在內,一共有多少種不同的分割方法。注意 旋轉對稱的屬於同一種分割法。請提交該整數,不要填寫任何多餘的內容或說明文字。圖的dfs 按照兩...
第八屆藍橋杯省賽C A組 字母組串(遞迴)
include a個a,b個b,c個c 字母,能組成多少個不同的長度為n的串。int f int a,int b,int c,int n int main 對於上面的測試資料,小明口算的結果應該是 619 注意 只填寫劃線部分缺少的 不要提交任何多餘內容或說明性文字。答案 f a 1,b,c,n 1...