题解 | #字符串通配符#

字符串通配符

http://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036

#include<iostream>
using namespace std;
bool isMatch(const char*s,const char*p)
{
    if(*s=='\0'&&*p=='\0')
    {
        return true;
    }
    if(*s=='\0'||*p=='\0')
    {
        return false;
    }
    if(*p=='?')
    {
        if(!isdigit(*p)&&!isalpha(*s))
        {
            return false;
        }
        return isMatch(s+1, p+1);
    }
    else if(*p=='*')
    {
        while(*p!='\0'&&*p=='*')p++;
        p--;
        return isMatch(s,p+1)||isMatch(s+1,p+1)||isMatch(s+1,p);
    }
    else if(tolower(*p)==tolower(*s))
    {
        return isMatch(s+1,p+1);
    }
    return false;
}
int main()
{
    string p,s;
    while(cin>>p>>s)
    {
        bool res=isMatch(s.c_str(),p.c_str());
        if(res)
        {
            cout<<"true"<<endl;
        }
        else
        {
            cout<<"false"<<endl;
        }
    }
    return 0;
}
全部评论

相关推荐

10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
我是小红是我:学校换成中南
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务