您的位置:首页 > 其它

hdu 2072-单词数

2013-03-31 10:36 465 查看
题意:

小文章都是由小写字母和空格组成,没有标点符号,统计一篇文章里不同单词的总数。

做这个题目学习了STL的学习,set以及string的一点应用:

具体的看代码:

#include <iostream>
#include <set>
#include <string>
#include <sstream>// 不要忘记了

using namespace std;

int main() {
string art;
while(getline(cin,art) && art != "#"){
istringstream stream(art);
string word;
set<string> map;
while(stream >>word){
map.insert(word);
}
cout <<map.size() <<endl;
}
return 0;
}


#define CY 1000000
char str[CY];

set<string> st;
int main(void) {
while (gets(str) && str[0] != '#') {
st.clear();
int len = (int)strlen(str), sum = 0;
bool flag = false;
string S = "";
for (int i = 0; i <= len; ++i) {
if (str[i] >= 'a' && str[i] <= 'z') {
S += str[i];
flag = true;
} else if (flag) {
if (!st.count(S)) st.insert(S);
flag = false;
S.clear();
}
}
printf("%d\n", st.size());
}
return 0;
}


string s;
map<string, int> maps;

int main() {
while(getline(cin, s)) {
if(s == "#") break;
LL len = s.length(), ans = 0;
maps.clear();
for(LL i = 0; i < len; ++i) {
if(s[i] == ' ') {
continue;
}
string t = "";
for(; i < len; ++i) {
if(s[i] != ' '){
t += s[i];
}else {
break;
}
}
//	cout<< t << ans << endl;
if(maps[t] == 0) {
maps[t] = 1;
ans++;
}
}
cout<< ans<< endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: