您的位置:首页 > 其它

杭电 HDU 2072 单词数

2015-04-01 21:36 477 查看

单词数

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 33811 Accepted Submission(s): 7971



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


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


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


Sample Input
you are my friend
#




Sample Output
4




Author
Lily


Source
浙江工业大学网络选拔赛
通过参考别人的代码 关联性的学到了不少容器类的知识
istringstream类:
:把一行字符串放入流中,单词以空格隔开。之后把一个个单词从流中依次读取到字符串

1.#include <iostream>   
2.#include <sstream>   
3.using namespace std;  
4.int main()  
5.{  
6.    istringstream istr;  
7.    string line,str;  
8.    while (getline(cin,line))//从终端接收一行字符串,并放入字符串line中   
9.    {  
10.        istr.str(line);//把line中的字符串存入字符串流中   
11.        while(istr >> str)//每次读取一个单词(以空格为界),存入str中   
12.        {  
13.            cout<<str<<endl;  
14.        }  
15.    }  
16.    system("pause");  
17.    return 1;
18.}
 
<strong><span style="font-size:24px;">AC code: </span></strong>
#include<iostream>
#include<sstream>
#include<string>
#include<set>

using namespace std;
int main()
{
	string line,word;
	set<string>list;
	while(getline(cin,line)&&line!="#")
	{
		list.clear();
		istringstream shu(line);
		while(shu>>word)
		{
			if(list.find(word)==string::npos)
				list.insert(word);
		}
		cout<<list.size()<<endl;
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: