C++代码:
int i,j,istar=-1,jstar=-1,num=0;
if(s.size()==0&&p.size()==0)
return true;
else if(s.size()!=0&&p.size()==0)
return false;
else if(s.size()==0&&p.size()!=0)
{
for(i=0;i<p.size();i++)
{
if(p[i]=='*')
num++;
}
if(num==p.size())
return true;
else
return false;
}
else
{
i=0;
j=0;
while(i<s.size())
{
if(j<p.size()&&(s[i]==p[j]||p[j]=='?'))
{
i++;
j++;
}
else if(j<p.size()&&p[j]=='*')
{
istar=i;
jstar=j++;
}
else if(istar>=0)
{
i=istar++;
j=jstar+1;
}
else
return false;
}
while(j<p.size()&&p[j]=='*')
++j;
return j==p.size();
}
贪心