問題描述
考慮一種簡單的正規表示式:
只由 x ( ) | 組成的正規表示式。
小明想求出這個正規表示式能接受的最長字串的長度。
例如 ((xx|***)x|(x|xx))xx 能接受的最長字串是: ******,長度是6。
輸入格式
乙個由x()|組成的正規表示式。輸入長度不超過100,保證合法。
輸出格式
這個正規表示式能接受的最長字串的長度。
樣例輸入
((xx|***)x|(x|xx))xx
樣例輸出
6 資料規模和約定
峰值記憶體消耗(含虛擬機器) < 256m
cpu消耗 < 1000ms
感覺不好寫的一道題,剛開始想成表示式求值了,後來發現也不太對,就用遞迴寫吧.每次遇到左括號就遞迴一層並返回值,遇到』|』時有個技巧,就是先讓res=0,然後維護res的值,最後還要更新一次,因為它並不會以」|」為結尾.
#include
#define ll long long
#define inf 0x3f3f3f3f
#define pb push_back
#define rep(i,a,b) for(int i=a;i#define rep1(i,b,a) for(int i=b;i>=a;i--)
using namespace std;
const int n=1e5+100;
int arr[n];
string str;
intpos, len;
int dfs()
else
if (str[pos] == ')')
else
if (str[pos] == '|')
else
}res = max(num, res);
return res;
}int main()
正則問題 遞迴
問題描述 考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6。輸入格式 乙個由x 組成的正規表示式。輸入長度不超過100,保證合法。輸出格式 這個正規表示式能接受的最長字串的長度。樣例輸入...
藍橋杯 2017初賽 正則問題 遞迴
考慮一種簡單的正規表示式 只由 x 組成的正規表示式。小明想求出這個正規表示式能接受的最長字串的長度。例如 xx x x xx xx 能接受的最長字串是 長度是6 輸入乙個由x 組成的正規表示式。輸入長度不超過100,保證合法。輸出這個正規表示式能接受的最長字串的長度。樣例輸入 xx x x xx ...
PHP正則之遞迴匹配
正則是否能處理括號配對的正則匹配.比如,對於如下的待匹配的字串 就是乙個括號配對的字串.而對於如下的待匹配字串 則不是乙個括號配對的字串.在以前,這種情況,正則無法處理,最多只能處理固定層數的遞迴,而無法處理無線遞迴的情況 而在perl 5.6以後,引入了乙個新的特性 recursive patte...