Codeforces_832B: Petya and Exam
阿新 • • 發佈:2017-07-26
std bsp ems targe its false lower return ace
題目鏈接
暴力模擬。。好好讀題就好了。。羨慕英語好的
#include<bits/stdc++.h> using namespace std; typedef long long LL; bool vis[150]; string t; string p,p1; int q; bool ok(string t) { if(t.length()<p1.length()) return false; else { int l=1; //在i指針遇到‘*‘前,l無具體意義,只為抵消-1的影響;//遇到‘*‘後,l表示 ‘空串 或者 string of bad lowercase English letters‘的長度 for(int i=0; i<p.length(); i++) { if(t[i+l-1]==p[i] || p[i]==‘?‘&&vis[t[i+l-1]]) continue; else if(p[i]==‘*‘) { for(l=0; t.length()-l+1>p.length(); l++)if(vis[t[i+l]]) return false; } else return false; } if(t.length()-l+1!=p.length()) return false; return true; } } int main() { while(cin>>t) { memset(vis,0,sizeof(vis)); p1.clear(); for(int i=0; i<t.length(); i++) vis[t[i]]=true; cin>>p; for(int i=0; i<p.length(); i++) if(p[i]!=‘*‘) p1.push_back(p[i]); cin>>q; while(q--) { cin>>t; if(ok(t)) puts("YES"); else puts("NO"); } } }
Codeforces_832B: Petya and Exam