记录编号 170558 评测结果 WWWWWWWWWWWWW
题目名称 加利福尼亚旅店 最终得分 0
用户昵称 GravatarSatoshi 是否通过 未通过
代码语言 C++ 运行时间 0.019 s
提交时间 2015-07-14 11:36:40 内存使用 0.32 MiB
显示代码纯文本
  1. #include <fstream>
  2. using namespace std;
  3. ifstream in("hotela.in");
  4. ofstream out("hotela.out");
  5. string S;int n;
  6. string T;
  7. bool work(string A,string B)
  8. {
  9. int a,b,i,last=0;
  10. bool flag=1,blag=0;
  11. a=A.size();
  12. b=B.size();
  13. //特判
  14. if(a>b)return 0;
  15. if(A==" "||B==" ")return 0;
  16. for(i=0;i<b;i++)
  17. {
  18. if(B[i]<'a'||B[i]>'z')return 0;
  19. }
  20. for(i=0;i<a;i++)if(A[i]!='*')
  21. {
  22. flag=0;
  23. break;
  24. }
  25. if(flag)return 1;
  26. for(i=0;i<a;i++)
  27. {
  28. if(A[i]=='*')
  29. {
  30. blag=1;
  31. break;
  32. }
  33. }
  34. if(!blag)
  35. {
  36. if(A.size()!=B.size())return 0;
  37. for(i=0;i<a;i++)if(A[i]=='?')A[i]=B[i];
  38. if(A==B)return 1;
  39. else return 0;
  40. }
  41. return 0;
  42. //
  43. /*for(i=0;i<b;i++)
  44. {
  45. if(A[i]=='?')continue;
  46. if(A[i]=='*')
  47. {
  48. }
  49. if(A[i]!='?'&&A[i]!='*')
  50. {
  51. if(A[i]!=B[i])return 0;
  52. }
  53. }*/
  54. }
  55. int main()
  56. {
  57. int ans=0,i;
  58. while(!in.eof())
  59. {
  60. ans=0;
  61. in>>S;
  62. in>>n;
  63. for(i=1;i<=n;i++)
  64. {
  65. in>>T;
  66. if(work(S,T))ans++;
  67. }
  68. out<<ans<<endl;
  69. }
  70. return 0;
  71. }