AcWing 3204. 字符串匹配
原题链接
简单
C++ 代码
#include<bits/stdc++.h>
using namespace std;
string str;
bool st;
int x;
bool patch(string s,string str){
int m=str.size();
int n=s.size();
int i=0;
//特判,模式串长于匹配串
if(m>n) return false;
while(i<n){
int j=0;
while(j<m&&s[i+j]==str[j]){
j++;
}
if(j==m) return true;
i++;
}
return false;
}
int main(){
cin>>str>>st>>x;
//str作为模式串,s为匹配串
while(x--){
string s;
cin>>s;
if(st){
if(patch(s,str)) cout<<s<<endl;
}else{
//都化为小写字母进行匹配
string lowerS=s,lowerStr=str;
transform(lowerS.begin(),lowerS.end(),lowerS.begin(),::tolower);
transform(lowerStr.begin(),lowerStr.end(),lowerStr.begin(),::tolower);
if(patch(lowerS,lowerStr)) cout<<s<<endl;
}
}
return 0;
}