码迷,mamicode.com
首页 > 其他好文 > 详细

加强赛第五轮G题(G - 单词数 HDU - 2072 )

时间:2017-03-25 18:54:01      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:out   sam   string   tmp   并且   while   bit   输出   lin   

感谢我的学长们对我的带领;该题思想与代码来源于WArobot;

题目概述:

lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input

you are my friend
#

Sample Output

4


思想:该题采用getline输入,并且判断是否为“#”,“#”不被允许进入计数;
该题采用set来存getline输入的每一个数,用if(c[i]==‘ ‘||i==c.size())来分隔每一个单词;
由于题中没有说是否会出现连续的空格,所以用if(tmp=="") continue;和tmp="";来防止入坑;
set对象的建立方法:set<string> st;
set的插入元素的方法:st.insert(tmp);
循环导入结束后输出:st.size()(size是导出元素个数的函数)即可;
代码如下:

 

#include "bits/stdc++.h"
using namespace std;

set<string> st;
string c;
void word(){
st.clear();
string tmp="";
for(int i=0;i<=c.size();i++){
if(c[i]==‘ ‘||i==c.size()){
if(tmp=="") continue;
st.insert(tmp);
tmp="";
}
else tmp+=c[i];
}
cout<<st.size()<<endl;
}
int main(){
while(getline(cin,c)&&c[0]!=‘#‘){
word();
}
return 0;
}

加强赛第五轮G题(G - 单词数 HDU - 2072 )

标签:out   sam   string   tmp   并且   while   bit   输出   lin   

原文地址:http://www.cnblogs.com/sunowsir/p/6618005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!