题目:

  对于主串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;
}