源码如下:
#include<bits/stdc++.h>
using namespace std;
string n,m,k,h;
string removeCase(string a){
string o;
for(int i=0;i<a.length();i++){
char c=a[i];
if(65<=(int)c&&(int)c<=90) c=c+32;
o+=c;
}
return o;
}
void searchWord(){
list<int> l;
for(int i=0;i<k.length();i++){
if((i==0||k[i-1]==' ')&&k[i]==h[0]) l.push_back(i);
}
//for(int g:l) cout<<g<<",";cout<<endl;
if(l.empty()){
cout<<-1;
return;
}
for(int i=1;i<h.length();i++){
for(list<int>::iterator it=l.begin();it!=l.end();++it){
if(k[*it+i]!=h[i]) it=l.erase(it);
}
}
//for(int g:l) cout<<g<<",";cout<<endl;
if(h.length()==1) for(list<int>::iterator it=l.begin();it!=l.end();++it) if(k[*it+1]!=' ') it=l.erase(it);
if(l.empty()){
cout<<-1;
return;
}
cout<<l.size()<<" "<<l.front();
}
int main(){
getline(cin,n);
getline(cin,m);
k=removeCase(m);
h=removeCase(n);
//cout<<h<<"|"<<endl<<k<<"|"<<endl;
searchWord();
return 0;
}
甚至下载了测试点5还是毫无头绪,是不是题目理解错了(?