http://ica.openjudge.cn/function1/3/
const int N =1004;
int n,m,f[N][N];
char a[N],b[N];
signed main(){
int i,j;
cin>>a+1>>b+1;
n=strlen(a+1); m=strlen(b+1);
for(i=1;i<=n;i++)
if(a[i]=='*') f[i][0]=1;
else break;
f[0][0]=1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
if(a[i]=='?'||a[i]==b[j]) f[i][j]|= f[i-1][j-1];
else if(a[i]=='*')
f[i][j]|= f[i-1][j]|f[i][j-1]|f[i-1][j-1];
}
if(f[n][m]) cout<<"matched"; else cout<<"not matched";
cout<<endl;
}
浙公网安备 33010602011771号