bool isMatch(char* s, char* p) {
int m=strlen(s);
int n=strlen(p);
int dp[m+1][n+1];
memset(dp,0,sizeof(dp));
dp[0][0]=true;
int i,j;
//对边界问题进行处理
for(i=1;i<=n;i++)
{
if(p[i-1]=='*')
{
dp[0][i]=true;
}
else
{
break;
}
}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++){
/*
if(p[j-1]=='*') //比较*的情况
{
dp[i][j]=dp[i][j-1]|dp[i-1][j];
}
else
*/
if(p[j-1]=='?'||s[i-1]==p[j-1]) //比较?和全字母的情况
{
dp[i][j]=dp[i-1][j-1];
}
else if(p[j-1]=='*')
{
dp[i][j]=dp[i][j-1]|dp[i-1][j];
}
}
}
return dp[m][n];
}