比赛 |
20120323 |
评测结果 |
AAWAAAAAWWWWWWW |
题目名称 |
加利福尼亚旅店 |
最终得分 |
46 |
用户昵称 |
Yeehok |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2012-03-23 21:31:38 |
显示代码纯文本
#include<cstdio>
#include<cstring>
using namespace std;
struct charing
{
char str[51];
int l;
charing()
{
memset(str,0,sizeof(str));
l=0;
}
};
bool chacmp(char st1,char st2)
{
if(int(st1)==int(st2)||st1=='?'||st2=='?')
return false;
return true;
}
int main()
{
freopen("hotela.in","r",stdin);
freopen("hotela.out","w",stdout);
int s=0;
struct charing st;
while(scanf("%s",&st.str)!=-1)
{
st.l=strlen(st.str);
int n;
scanf("%d",&n);
struct charing ch;
s=0;
bool flag;
for(int i=0;i<n;i++)
{
scanf("%s",&ch.str);
ch.l=strlen(ch.str);
flag=true;
if(st.l==ch.l)
{
if(!strcmp(st.str,ch.str))
{
s++;
}
else
{
for(int j=0;j<st.l;j++)
{
if(chacmp(st.str[j],ch.str[j]))
{
break;
flag=false;
}
}
if(flag)
{
s++;
}
}
}
else
{
int j=0,k=0;
while(1)
{
if(j==st.l)
{
if(k==ch.l)
s++;
break;
}
if(st.str[j]=='*')
{
j++;
for(;k<ch.l;k++)
{
if(st.str[j]==ch.str[k])
break;
}
}
else if(st.str[j]=='?')
{
j++;
k++;
}
else if(st.str[j]==ch.str[k])
{
k++;
j++;
}
else
break;
}
}
}
printf("%d\n",s);
}
return (0);
}