求助10分
查看原帖
求助10分
544007
lhs_chris楼主2023/4/11 21:23
#include<bits/stdc++.h>
#include<queue>
#include<set>
#include<stack>
#define ll long long
using namespace std;
const int N=1e5;
const int M=2023;
const int inf=0x3f3f3f3f;
string z;
string a;
int i=1,flag,QAQ[N],ans,num,s[N],wdf;
int main()
{
	getline(cin,z);
	getline(cin,a);
	for(int i=0;i<z.size();i++)
	{
		if(z[i]>='A' and z[i]<='Z')z[i]+=32;
	 } 
	for(int i=0;i<a.size();i++)
	{
		if(a[i]>='A' and a[i]<='Z')a[i]+=32;
	 } 
	for(int i=0;i<a.size();i++)
 	{
	 	if(a[i]==' ')
	 	{
			QAQ[ans]=i;	
	 		ans++;
		}	
	}
	for(int i=0;i<ans;i++)
	{
		flag=0;
		wdf=0;
		if(i==0)
		{
			for(int j=0;j<QAQ[0];j++)
			{
				if(wdf>z.size())
				{
					continue;
				}
				if(a[j]!=z[wdf])
				{
					flag=1;
				}
				wdf++;
			}
			if(flag==0 )
			{
				num++;
				s[num]=i;
			}
		}
		else if(flag==0 and i!=0 and i!=(ans-1)) 
		{
			for(int j=QAQ[i]+1;j<=QAQ[i+1]-1;j++)
			{
				if(wdf>z.size())
				{
					continue;
				}
				if(a[j]!=z[wdf])
				{
					flag=1;
				}
				wdf++;
			 } 
			 if(flag==0 )
			 {
			 	num++;
			 	s[num]=i;
			 }
		}
		else if(i==ans-1)
		{
			for(int j=QAQ[ans-1]+1;j<a.size()+1;j++)
			{
				if(wdf>z.size())
				{
					continue;
				}
				if(a[j]!=z[wdf])
				{
					flag=1;
				}
				wdf++;
			 } 
			 if(flag==0)
			 {
			 	num++;
			 	s[num]=i;
			 }
		}
	}
	if(num!=0)
		cout<<num<<" "<<s[1];
	else 
		cout<<"-1";                                                                             
	return 0;
}
/*
SB
sb a sb a sb
*/
2023/4/11 21:23
加载中...