题意及思路
- 题意:找出文本串中含有多少个目标串,😃输出其个数 和 第一次出现的首字母下标(文本串中的下标从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;
}