记录编号 |
37114 |
评测结果 |
AAAAAAAAAAAAA |
题目名称 |
加利福尼亚旅店 |
最终得分 |
100 |
用户昵称 |
Makazeu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.241 s |
提交时间 |
2012-03-24 10:06:01 |
内存使用 |
0.26 MiB |
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
#define Loop(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
char str[100];
char cstr[60];
int str_jud(char *source,char *object,int asterisk)
{
char *sub_sour,*sub_obje;
sub_sour=(char *)malloc(sizeof(char)*100);
sub_obje=(char *)malloc(sizeof(char)*100);
strcpy(sub_sour,source);
strcpy(sub_obje,object);
if(*sub_obje=='*')
{
asterisk=1;
}
if(((*sub_sour=='\0')&&(*sub_obje=='\0'))||((sub_obje[1]=='\0')&&(*sub_obje=='*')))
return 1;
else if((*sub_sour=='\0')&&(*sub_obje!='\0'))
return 0;
else if(asterisk==0)
{
if((*sub_obje==*sub_sour)||(*sub_obje=='?'))
{
sub_sour++;
sub_obje++;
return str_jud(sub_sour,sub_obje,asterisk);
}
else
return 0;
}
else
{
if(*sub_obje=='*')
{
sub_obje++;
}
asterisk=0;
if(str_jud(sub_sour,sub_obje,asterisk))
{
return 1;
}
else
{
asterisk=1;
sub_sour++;
return str_jud(sub_sour,sub_obje,asterisk);
}
}
}
void init()
{
int N;
int Ans;
int yes;
scanf("%s\n",&str);
int asterisk=0;
while(strlen(str))
{
Ans=0;
scanf("%d\n",&N);
Loop(i,1,N)
{
scanf("%s\n",&cstr);
yes=str_jud(cstr,str,asterisk);
if(yes) Ans++;
asterisk=0;
}
printf("%d\n",Ans);
memset(str,'\0',sizeof(str));
scanf("%s\n",&str);
}
}
int main()
{
freopen("hotela.in","r",stdin);
freopen("hotela.out","w",stdout);
init();
return 0;
}