hdu 2072 单词数

http://acm.hdu.edu.cn/showproblem.php?pid=2072

单词数这道题感觉用c写很麻烦,用c++写就比较简单了。不多说,直接贴代码。

#include<iostream>
#include<string>
#include<vector>
#include<sstream>

using namespace std;

int main()
{
    vector<string> s;
    string s0,s1;
    int flag;

    while(getline(cin,s0))
    {
        if(s0=="#")
            break;
        else
        {
            s.clear();
            istringstream sin(s0);
            while(sin>>s1)
            {
                flag=0;
                for(int i=0;i<s.size();i++)
                {
                    if(s[i]==s1)
                    {
                        flag=1;
                        break;
                    }
                }
                if(flag==0)
                    s.push_back(s1);
            }
            cout<<s.size()<<endl;
        }
    }
    return 0;
}

感觉用set更简单,这是网上的代码:

#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;
}  
时间: 2024-10-21 20:02:44

hdu 2072 单词数的相关文章

hdu 2072单词数

单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28671    Accepted Submission(s): 6877 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Inp

HDU 2072.单词数【STL的优势以及字符串流的使用】【8月4】

单词数 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数. Sample Input you are my friend # Sample

hdu 2072 单词数(STL set写法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 思路简单,但是注意一个细节就是最后可能是空格结束的,就是这儿让我WA啦好多次呀... code: #include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<set> #include<st

HDU 2072 单词数(map)

Problem Description http://acm.hdu.edu.cn/showproblem.php?pid=2072 lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总

hdu 2072 单词数,set,strtok

STL_set操作: st.begin() 返回指向第一个元素额迭代器 st.end() 返回指向末尾元素的迭代器 st.rbegin() 返回逆向迭代器,指向链表末尾 st.rend() 返回指向开头之前位置的迭代器 st.clear() 清空迭代器 st.count(key_type key) 返回某个值元素的个数 st.empty() 如果为空,返回true st.size() 返回元素的数量 st.swap() 交换两个集合变量 st.insert(val) st.insert(loc,

HDOJ——2072单词数

SSCANF用法:(继qsort,bsearch,strchr后发现的又一好使的函数) sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 例子:   1. 常见用法. char buf[512] ; sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中! printf("%s\n", buf); 结果为:12

HDU ACM 2072单词数

分析:自从有了set.sstream中的istringstream与及string之后,这种问题也变水了,记得不要忘了STL或者是字符串类及字符流等工具哦!. 注意:重复的单词算一个. #include<iostream> #include<sstream> #include<set> using namespace std; int main() { char a[10001]; string b; while(gets(a) && a[0]!='#'

杭电2072 统计单词数

http://acm.hdu.edu.cn/showproblem.php?pid=2072 用set容器来统计单词数,可以排除相同的单词. #include<iostream>#include<set>#include<string>using namespace std; int main(){ string String,str; set<string> s; int i = 0; bool flag; while(getline(cin,str) &

HDU 2072 单词数 --- 字符串处理

/* HDU 2072 单词数 --- 字符串处理 */ #include <cstdio> //C语言改成stdio.h即可 #include <cstring> //C语言改成string.h即可 const int maxn = 85; int main() { char *head1, *head2; char a[maxn]; char b[maxn][maxn]; int i, k, len, cnt1, cnt2; while (gets(a)){ //遇到字符串&q