AcWing 3204. 字符串匹配
原题链接
简单
作者:
Value
,
2021-03-29 10:48:58
,
所有人可见
,
阅读 323
#include <iostream>
using namespace std;
string change(string s, int flag){
if(flag) return s;
string res = "";
for(int i = 0; i < s.size(); i ++ ){
if(s[i] >= 'A' && s[i] <= 'Z') res += s[i] - 'A' + 'a';
else res += s[i];
}
return res;
}
int main(){
string t; cin >> t;
int flag; cin >> flag;
t = change(t, flag);
int n; cin >> n;
while(n -- ){
string str; cin >> str;
string s = change(str, flag);
int i = 0, j = 0;
int pre = i;
while(i < s.size() && j < t.size()){
if(s[i] == t[j]) i ++ , j ++ ;
else{
j = 0, i = pre + 1;
pre = i;
}
}
if(j == t.size()) cout << str << endl;
}
return 0;
}