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解决这个问题。

Input

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

Output

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

Sample Input

you are my friend
#

Sample Output

4

#include <stdio.h>
#include <string>
#include <set>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{

    char str[10002];
    while (gets(str))
    {

        if (0 == strcmp(str,"#")) break;
        set<string> s;
        string s1= "";
        s.insert(s1);
        for (int i =0 ; str[i] ;)
        {

            s1 = "";
            while (str[i]!=‘ ‘&&str[i])
            {
                s1 += str[i];
                i++;
            }

            s.insert(s1);
            while (str[i] == ‘ ‘)  i++;
        }
        printf("%d\n",s.size()-1);
        s.clear();

    }

    return 0;
}

#include <stdio.h>

#include <string>

#include <set>

#include <string.h>

#include <iostream>

using namespace std;

int main() {

char str[10002];

while (gets(str))

{

if (0 == strcmp(str,"#"))    break;

set<string> s;

string s1= "";

s.insert(s1);

for (int i =0 ; str[i] ;)

{

s1 = "";

while (str[i]!=‘ ‘&&str[i])

{                 s1 += str[i];                 i++;             }

s.insert(s1);

while (str[i] == ‘ ‘)  i++;                    }

printf("%d\n",s.size()-1);

s.clear();

}

return 0;

}

#include <stdio.h>
#include <string>
#include <set>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{

    char str[10002];
    char str1[10002];
    set<string> s;
    string s1;
    while (gets(str))
    {
        if (0 == strcmp(str,"#")) break;
        while (sscanf(str,"%s",str1)!=EOF)
        {
            s1=str1;
            s.insert(s1);
            int i=0;
            while (str[i]==‘ ‘&&str[i]) i++;
            while (str[i]!=‘ ‘&&str[i]) str[i++]=‘ ‘;

        }

        printf("%d\n",s.size());
        s.clear();
    }

    return 0;
}

#include <stdio.h>

#include <string>

#include <set>

#include <string.h>

#include <iostream>

using namespace std;

int main() {

char str[10002];

char str1[10002];

set<string> s;

string s1;

while (gets(str))

{

if (0 == strcmp(str,"#")) break;

while (sscanf(str,"%s",str1)!=EOF)

{             s1=str1;

s.insert(s1);

int i=0;

while (str[i]==‘ ‘&&str[i])                    i++;

while (str[i]!=‘ ‘&&str[i])               str[i++]=‘ ‘;

}

printf("%d\n",s.size());

s.clear();

}

return 0;

}

**************************************************************************************************************8

思考一下

#include <stdio.h>
#include <string>
#include <set>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{

    char str[10002];
    char str1[10002];
    set<string> s;
    string s1;
    while (gets(str))
    {
        if (0 == strcmp(str,"#")) break;
        while (sscanf(str,"%s",str1)!=EOF)
        {
            s1=str1;
            s.insert(s1);
    cout<<s1<<endl;
            printf("%s\n",str);
            system("pause");
            int i=0;
            while (str[i]==‘ ‘&&str[i]) i++;
            while (str[i]!=‘ ‘&&str[i]) str[i++]=‘ ‘;

        }

        printf("%d\n",s.size());
        s.clear();
    }

    return 0;
}

hdu 2072单词数,布布扣,bubuko.com

时间: 2024-10-07 07:04:28

hdu 2072单词数的相关文章

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

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

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

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