比赛 |
20150714B |
评测结果 |
WWWWWWWWWWWWW |
题目名称 |
加利福尼亚旅店 |
最终得分 |
0 |
用户昵称 |
Satoshi |
运行时间 |
0.018 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2015-07-14 11:03:41 |
显示代码纯文本
#include <fstream>
using namespace std;
ifstream in("hotela.in");
ofstream out("hotela.out");
string S;int n;
string T;
bool work(string A,string B)
{
int a,b,i,last=0;
bool flag=1,blag=0;
a=A.size();
b=B.size();
//特判
if(a>b)return 0;
if(A==" "||B==" ")return 0;
for(i=0;i<b;i++)
{
if(B[i]<'a'||B[i]>'z')return 0;
}
for(i=0;i<a;i++)if(A[i]!='*')
{
flag=0;
break;
}
if(flag)return 1;
for(i=0;i<a;i++)
{
if(A[i]=='*')
{
blag=1;
break;
}
}
if(!blag)
{
if(A.size()!=B.size())return 0;
for(i=0;i<a;i++)if(A[i]=='?')A[i]=B[i];
if(A==B)return 1;
else return 0;
}
return 1;
//
/*for(i=0;i<b;i++)
{
if(A[i]=='?')continue;
if(A[i]=='*')
{
}
if(A[i]!='?'&&A[i]!='*')
{
if(A[i]!=B[i])return 0;
}
}*/
}
int main()
{
int ans=0,i;
while(!in.eof())
{
ans=0;
in>>S;
in>>n;
for(i=1;i<=n;i++)
{
in>>T;
if(work(S,T))ans++;
}
out<<ans<<endl;
}
return 0;
}