fork download
  1. var i,j,m,n,k,o,u:longint;a,b,c:string;
  2. procedure giai;
  3. var i,j:longint;
  4. begin
  5. o:=0;
  6. readln(c);
  7. if length(c)>length(b) then
  8. o:=1;
  9. if length(c)<length(b) then
  10. for i:=length(c) to length(b) do
  11. if (b[i]<>'?') and (b[i]<>'*') then
  12. begin
  13. o:=1;
  14. break;
  15. end;
  16. if o<>1 then
  17. for i:=1 to length(c) do
  18. if (b[i]<>'?') and (b[i]<>'*') then
  19. begin
  20. if b[i]<>c[i] then
  21. begin
  22. o:=1;
  23. break;
  24. end;
  25. end
  26. else
  27. if b[i]='?' then
  28. begin
  29. u:=0;
  30. for j:=1 to length(a) do
  31. if a[j]=c[i] then
  32. begin
  33. u:=1;
  34. break;
  35. end;
  36. if u<>1 then
  37. begin
  38. o:=1;
  39. break;
  40. end;
  41. end;
  42. if o=1 then writeln('NO')
  43. else
  44. writeln('YES');
  45. end;
  46. begin
  47. readln(a);
  48. readln(b);
  49. readln(n);
  50. for i:=1 to n do
  51. giai;
  52. end.
Success #stdin #stdout 0s 9120KB
stdin
ab
a?a
2
aaa
aab
stdout
YES
NO