P1308 [NOIP2011 普及组] 统计单词数

Posted Kunkun只喝怡宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1308 [NOIP2011 普及组] 统计单词数相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码

1.因为匹配单词时不区分大小写,所以需要先将单词和句子都转换为同大写或者同小写。
2.因为只能匹配独立的单词,所以需要判断找到的单词前后都得是空格符,并且找到了一个单词后就要将它改变。
3.如果找到的是一个单词的一部分,也需要将之改变。

#include<bits/stdc++.h>

using namespace std;
void f(string &s){
	int i;
	while(s[i]){
		if(s[i]>='A'&&s[i]<='Z')
			s[i]+=('a'-'A');
		i++;
	}
}
int main(){
	string a,s;
	int d=-1,cnt=0;
	int n=0,m;
	getline(cin,a);
	f(a);
	getline(cin,s);
	f(s);
	while(1){
		if(s.find(a)>=0&&s.find(a)<s.length()&&s[s.find(a)+a.length()]==' '&&s[s.find(a)-1]==' '){
			cnt++;
			if(d==-1) d=s.find(a);
			s[s.find(a)]='0';
		}else if(s.find(a)>=0&&s.find(a)<s.length()){
			s[s.find(a)]='0';
		}else break;
	}
	if(cnt) cout<<cnt<<" "<<d;
	else cout<<-1;
	return 0;
}

以上是关于P1308 [NOIP2011 普及组] 统计单词数的主要内容,如果未能解决你的问题,请参考以下文章

入门5字符串

入门5字符串

05:统计单词数NOIP2011复赛普及组第二题

统计单词数(NOIP2011 普及组第二题)

1400统计单词数 (noip2011普及组第2题)

NOIP 2011 复赛 普及组 c标称 求大神赏口饭吃