zoukankan      html  css  js  c++  java
  • 面试题19:正则表达式匹配

    考察字符串匹配:正则表达式。

    C++版

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    bool matchCore(char str[], char pattern[]){
        if(*str == '' && *pattern == '')
            return true;
        if(*str != '' && *pattern == '')
            return false;
        if(*(pattern+1) == '*'){
            if(*pattern == *str || (*pattern == '.' && *str != ''))
                return matchCore(str+1, pattern+2) || matchCore(str+1, pattern) || matchCore(str, pattern+2);
            else
                return matchCore(str, pattern+2);
        }
        if(*pattern == *str || (*pattern == '.' && *str != ''))
            return matchCore(str+1, pattern+1);
        return false;
    }
    
    bool match(char str[], char pattern[]){
        if(str == nullptr || pattern == nullptr)
            return false;
        return matchCore(str, pattern);
    }
    
    int main()
    {
        char str[] = {'a','a','a',''};
        char pattern[] = {'a','.','a',''};
        if(match(str, pattern))
            cout<<"yes."<<endl;
        else
            cout<<"no."<<endl;
        return 0;
    }
    
    
  • 相关阅读:
    1265 四点共面
    1298 圆与三角形
    1264 线段相交
    1185 威佐夫游戏 V2
    1183 编辑距离
    1089 最长回文子串
    HTML5 boilerplate 笔记(转)
    Grunt上手指南(转)
    RequireJS 2.0初探
    RequireJS学习笔记
  • 原文地址:https://www.cnblogs.com/flyingrun/p/13364751.html
Copyright © 2011-2022 走看看