/*
不区分大小写:全部转为大小/小写
给要查找的单词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;
}
}
1444 题解
赞赏