題意:給你乙個正規表示式(偽),唯一不同其中.*代表 不是 *個. 而是.先匹配再星
思路:場上dp過了(瞎分類討論不知道wa了多少次。。),試圖用正則來著但是不會寫。。。下來學習一下姿勢。。
首先regex這個c++11的庫函式就不多說了,知道怎麼構造正則和匹配就可以了。重要的還是正則姿勢。
實際上正解的就是把 .* 換成(.)\1*,
匹配num,其中num是乙個正整數。對所獲取的匹配的引用。例如,「(.)\1」匹配兩個連續的相同字元。
pps.跑的賊慢。。。大概做題是用不上了。。。
**:#includeusing namespace std;
#define x first
#define y second
#define pb push_back
#define mp make_pair
#define mem(x,y) memset(x,y,sizeof(x));
#define bug(x) cout<<"bug"string s1,s2;
int main(){
int t;
std::ios::sync_with_stdio(false);
cin>>t;
string abc;
abc="(.)\\1*";
while(t--){
cin>>s1>>s2;
string tmp;
int n=s2.size();
for(int i=0;i匹配num,其中num是乙個正整數。對所獲取的匹配的引用。例如,「(.)\1」匹配兩個連續的相同字元。
HDU 6170 正規表示式
字串模式匹配,匹配任何乙個字元,表示它的前乙個字元可以任意出現 0次或多次 給出字串和模式串,詢問是否匹配 和標準正規表示式不同的是 模式串在題意下不能匹配 abcde 這樣的字串 按題意 的意思是相同字元的0個或多個重複串 那麼我們把模式串中的 替換成 1 即可 隊友用其他的dp做法比較快,90m...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...