正則問題 遞迴

2022-09-13 05:18:13 字數 995 閱讀 1936

問題描述

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

只由 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...