思路:按着题意模拟即可
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<cstring>
using namespace std;
const int N = 1005;
typedef long long ll;
int flag,n;
string s;
bool check(int i,string &ss)
{
if(i+s.size()>ss.size())
return false;
for(int j=0;j<s.size();j++)
{
if(flag&&s[j]!=ss[j+i])
return false;
char c=ss[j+i]+32;
if(!flag&&s[j]!=c && !flag && s[j]!=ss[j+i])
return false;
}
return true;
}
int main()
{
cin>>s;
cin>>flag;
if(!flag)
{
for(int i=0;i<s.size();i++)
if(isupper(s[i]))
s[i]+=32;
}
cin>>n;
while(n--)
{
string ss;
cin>>ss;
for(int i=0;i<ss.size();i++)
{
if(check(i,ss))
{
cout<<ss<<endl;break;
}
}
}
return 0;
}