题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2585
题目大意:马克思要找个曾经去过的很好的旅馆,可惜他记不完整旅馆的名字。他有已知的部分信息和可能的旅馆全称,输出匹配的旅馆名个数。已知信息中‘*’代表此处为0或多个小写字母,‘?’代表此处仅有一个小字母。
代码如下
//匹配字符串递归#include#include using namespace std; bool find(string a,string b) { int i,j; for(i=0;i =b.length()) return 0; if(a[i]=='?') continue; if(a[i]!=b[i]) return 0; } } return 1; }int main() { int ans; string a,b; while(cin >> a) { int k; ans=0; cin >> k; while(k--) { cin>>b; if(find(a,b)) ans+=1; } printf("%d\n",ans); } return 0; }