60分!!!大佬们,6、7、8、10测试点不过,为什么呢?
查看原帖
60分!!!大佬们,6、7、8、10测试点不过,为什么呢?
808489
Tom_catLLL楼主2022/11/14 21:22
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
#include <cmath>
using namespace std;

int main()
{
	string ar1, ar2;
	long long b=0,fals=1,ans=0,i=0;
	getline(cin, ar1);
	getline(cin, ar2);
	int len1 = ar1.size();
	for ( i = 0; i < ar2.length(); i++)//全部转化为小写
	{
		ar2[i] = tolower(ar2[i]);
	}
	for (i = 0; i < ar1.length(); i++)//全部转化为小写
	{
		ar1[i] = tolower(ar1[i]);
	}
	ar2 = ' ' + ar2;//第一个加上空格

	for (i = 0; i <= ar2.length(); i++)
	{
		fals = 1;   //判断是否满足相等
		if (ar2[i] == ' ')
		{
			continue;
		}
		if (ar2[i - 1] == ' ' && ar2[i] == ar1[0] && ar2[i + len1] == ' ')
		{
			for (int j = 0; j < len1; j++)
			{
				if (ar1[j] != ar2[i + j])
				{
					fals = 0; break;//不相等,fals=0,这样b就不用自增。
				}
			}
			if (fals == 1)
				b++;
			if (b == 1)//第一次相等时的位置;
				ans = i;
		}
	}
	if (b == 0)
		cout << -1;
	else
		cout << b << ' ' << ans-1;
	return 0;
}
2022/11/14 21:22
加载中...