#include <iostream> #include <string> using namespace std; bool match(char* pat, char* res) { if (*pat == '\0'&&*res == '\0') return true; if (*pat != '\0'&&*res == '\0') { while (*pat != '\0') { if (*pat == '#' || *pat == '*') { pat++; } else return false; } return true; } if (*pat == '\0'&&*res != '\0') { return false; } if (*pat == '?') return match(pat + 1, res + 1); if (*pat == '#') { return match(pat + 1, res + 1) || match(pat + 1, res); } if (*pat== '*') { return match(pat + 1, res) || match(pat + 1, res+1)|| match(pat, res + 1); } if(*pat==*res) return match(pat + 1, res + 1); return false; } int main() { string strt, strr; getline(cin, strt); getline(cin, strr); char* pat = new char[strt.size()]; char* res = new char[strr.size()]; for (int i = 0; i < strt.size(); i++) { pat[i] = strt[i]; } for (int i = 0; i < strr.size(); i++) { res[i] = strr[i]; } bool flag = match(pat ,res); if (flag == true) cout << 1 << endl; else cout << 0 << endl; return 0; } //AC 90%+ 显示超时
点赞 3

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务