题目:http://noi.openjudge.cn/ch0206/6252/
分析:注意b是空串!!j从0开始!
代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int Tmax=105;
char a[Tmax],b[Tmax];
int la,lb;
bool f[Tmax][Tmax];
int main()
{
int i,j,k;
scanf("%s",a+1);
scanf("%s",b+1);
la=strlen(a+1);
lb=strlen(b+1);
f[0][0]=1;
for(i=1;i<=la;i++)
for(j=0;j<=lb;j++)
{
if(a[i]==b[j]||a[i]=='?') f[i][j]=f[i-1][j-1];
else if(a[i]=='*')
for(k=j;k>=0;k--)
if(f[i-1][k]==true){
f[i][j]=true;
break;
}
}
if(f[la][lb]==true) printf("matched");
else printf("not matched");
return 0;
}