传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2072
思路:每输入一行单词,检验有多少个不同的单词
关键在于两点:①单词不要重复 ②注意好空格
自己用<set>作为集合,已经去掉了第一点;再用sstream(参见http://blog.csdn.net/allianzcortex/article/details/42168259,个人博客之前的说明)去掉空格,进行计数。
代码如下:
#include<iostream>
#include<cstring>
#include<algorithm>
#include<set> //set版本
#include<sstream>
using namespace std;
const int maxn=1000;
set<string> dic;
int main(void)
{
string s;
while(getline(cin,s))
{
dic.clear(); //每次处理前都要清零
if(s=="#") break;
stringstream ss;
ss.str(s);
string buf;
while(ss>>buf) dic.insert(buf);
cout<<dic.size()<<endl;
}
}
用普通的处理字符串解决如下:
因为低葡萄糖~空一下: