zoukankan      html  css  js  c++  java
  • HDU 6170-正则表达式

    题意

    字符串模式匹配,'.'匹配任何一个字符,'*'表示它的前一个字符可以任意出现(0次或多次),给出字符串和模式串,询问是否匹配

    分析

    和标准正则表达式不同的是".*"模式串在题意下不能匹配"abcde"这样的字符串

    按题意".*"的意思是相同字符的0个或多个重复串

    那么我们把模式串中的".*"替换成"(.)1*"即可

    队友用其他的dp做法比较快,90ms,用c++库的正则表达式要600+ms

    代码

    (使用g++)

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <regex>
    using namespace std;
    int main(){
        int cas;
        scanf("%d",&cas);
        string s1,s2;
        while(cas--){
            cin>>s1>>s2;
            s2=regex_replace(s2,regex("\.\*"),"(.)\1*");
            printf(regex_match(s1,regex(s2))?"yes
    ":"no
    ");
        }
        return 0;
    }
    

      

  • 相关阅读:
    IDEA添加注释模板
    Docker安装Mysql
    Linux使用
    Linux使用
    Spring Cloud入门 (5)
    在IDEA中将SpringBoot项目打包成jar包
    Linux使用
    Linux使用
    Linux使用- 虚拟机安装 Linux
    Spring Cloud入门 (4)
  • 原文地址:https://www.cnblogs.com/shuiming/p/7413726.html
Copyright © 2011-2022 走看看