C++ P1308
查看原帖
C++ P1308
632830
Mark_666楼主2023/2/28 20:22
#include <bits/stdc++.h>
using namespace std; 
int main()
{  
	string find;
	string s;
	cin>>find>>s;
	for(int i=0;i<s.size();i++)
		if(s[i]>='A'&&s[i]<='Z')
			s[i]-=32;
	for(int i=0;i<find.size();i++)
		if(find[i]>='A'&&find[i]<='Z')
			find[i]-=32;
	int t=1;
	int ans=0;
	int aans=0;
	int wz=0;
	for(int i=0;i<s.size();i++)
	{
		ans=0;
		for(int j=1;j<find.size();j++)
		{
			if(s[i]==' ')
			{
				t=1;
				continue;
			}
			if(s[i]=find[0])
			{
				t=0;
				ans++;
			}
			if(s[i]==find[j]&&t==0)
				ans++;
			if(ans==find.size())
			{
				aans++;
				ans=0;
				if(aans==1)
					wz=i;
			}
				
		}
		}
	
	if(aans==0)
		cout<<-1;
	else
	{
		cout<<aans<<' '<<wz<<endl;
	}
    return 0; 
}

不知道题目哪里还有坑,样例不对 整体的想法就是双重循环一个一个字母判断

2023/2/28 20:22
加载中...