Wildcard Matching

迭代:


#include<iostream>
using namespace std;
class Solution
{
public: bool isMatch(const char *s, const char *p)
        {
            int i=0,j=0;
            bool str=false;
            for(;s[i]!='\0';i++,j++)
            {
                switch (p[j])
                {
                case '?':   
                    break;
                case '*':
                    while(p[j]=='*')
                        j++;
                    if(p[j]=='\0') 
                        return true;
                    str=true;
                    i--;
                    j--;
                    break;
                default:
                    if(s[i]!=p[j])
                    {   
                        if(!str)
                            return false;
                        else
                            j--;
                            break;
                    }
                }
            }
            while(p[j++]=='*');
            return p[j]=='\0';
        }
};

void main()
{
    Solution solution;
    cout<<solution.isMatch("aab","*a*b");
}
阅读更多
个人分类: 程序问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭