题意及思路

  • 题意:找出文本串中含有多少个目标串,😃输出其个数 和 第一次出现的首字母下标(文本串中的下标从0开始)。
  • 思路:🙄第一步,输入。😉第二步,全部转小写(大写也是一样的)。🙂第三步,判断前后是否为空格,判断这个单词是否为目标串单词(这一步也就是最关键的一步)。😶第四步,输出答案。

代码

#include<bits/stdc++.h>

using namespace std;

vector<int> ans;

int main()
{
	std::ios::sync_with_stdio(false);
    cin.tie(0);
    string s,tlp;
    
	getline(cin,s);
	getline(cin,tlp);
	transform(s.begin(),s.end(),s.begin(),::tolower);
	transform(tlp.begin(),tlp.end(),tlp.begin(),::tolower);
	
	int sn = s.size(),tn = tlp.size();
	for(int i=0; i+sn-1<tn; i++){
		if(tlp[i]!=s[0]) continue;
		if(i>0 && tlp[i-1]!=' ') continue;
		if(i+sn<tn && tlp[i+sn]!=' ') continue;
		
		string t = tlp.substr(i,sn);
		if(t==s) ans.push_back(i);
	}
	if(ans.size()==0) cout << -1 << endl;
	else cout << ans.size() << " " << ans[0];
    
	return 0;
}