统计单词数

思路

爆搜

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	freopen("cal.in","r",stdin);
	freopen("cal.out","w",stdout);
	string a,b;
	cin>>a;
	getchar();
	getline(cin,b);
	a=' '+a+' ';
	b=' '+b+' ';
	int ans=0,cnt=0,op=-1;
	int len=b.size();
	for(int i=0;i<a.size();i++){
		if('A'<=a[i]&&a[i]<='Z'){
			a[i]+=32;
		}
	}
	for(int i=0;i<b.size();i++){
		if('A'<=b[i]&&b[i]<='Z'){
			b[i]+=32;
		}
	}
	for(int i=0;i<len;i++){
		if(a[cnt]==b[i]){
			cnt++;
		}else{
			cnt=0;
			if(a[cnt]==b[i]){
				cnt++;
			}
		}
		if(cnt==a.size()){
			ans++;
			cnt=0;
			i--;
			if(op==-1){
				op=i-a.size()+2;
			}
		}
	}
	if(op==-1){
		cout<<-1;
	}else{
		cout<<ans<<" "<<op;
	}
	return 0;
}

反思

没有想到样例可能有包含情况。