1. 程式人生 > >Codeforces_832B: Petya and Exam

Codeforces_832B: Petya and Exam

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