题目:
对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中位置,P中第一字符所在的位置为0。首行的数字表示有多少组字符串。
【输入示例】
2
ababababa
ababa
aaa
aa
【输出示例】
0 2 4
0 1
【程序】
#include <iostream> #include <string> #include <queue> using namespace std; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ string str,str2; cin>>str; cin>>str2; string strT=str; queue <int> q; for (int i = 0; i < str.length(); ++i) { if(strT.find(str2)==0) q.push(i); strT=strT.substr(1,strT.length()-1); } while(!q.empty()){ cout<<q.front(); q.pop(); if(!q.empty())cout<<" "; } cout<<endl; } return 0; }