1444 题解

/*
不区分大小写:全部转为大小/小写
给要查找的单词t前后加上空格:匹配完整的单词
给句子s的前后加上空格:找到第一个和最后一 个单词
a = s.find(t)
如果等于-1:
输出-1
pos=a
当a!=-1: //当能找到时
cnt ++
a = s.find(t, a+1) //找下一次出现的位置
输出cnt和pos
*/
#include <iostream>
#include <string>
using namespace std;
string t,s;
int ans,cnt;
int main() {
	cin >> t;
	getline(cin, s);
	getline(cin, s);
	for(int i=0; i<t.size(); i++) if(t[i]>='A'&&t[i]<='Z') t[i] += 'a'-'A';
	for(int i=0; i<s.size(); i++) if(s[i]>='A'&&s[i]<='Z') s[i] += 'a'-'A';
	t=" "+t+" ",s=" "+s+" ";
	int a = s.find(t);
	if(a==-1)cout << -1;
	else {
		ans=a;
		while(a!=-1)  cnt ++,a = s.find(t, a+1);
		cout << cnt << ' '<< ans;
		return 0;
	}
}
赞赏