杭电 HDU 2072 单词数

单词数

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;
}



 

 

posted @ 2015-04-01 21:37  cbam  阅读(92)  评论(0)    收藏  举报