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<string>
using namespace std;

int main()
{
    string s1,a;
    int i;
    while(getline(cin,s1))
    {
        if(s1=="#") break;
        int s=0;
        set<string> w;
        set<string>::iterator w1;
        for(i=0;i<s1.size();i++)
        {
            if(s1[i]==' ')
            {
                if(i-s!=0)
                {
                    a=s1.substr(s,i-s);
                    //cout<<"AAA "<<i<<" "<<a<<endl;
                    s=i+1;
                    w.insert(a);
                }
                else
                {
                    s=i+1;
                }
            }
        }
        a=s1.substr(s,s1.size());
        //cout<<a<<endl;
        w.insert(a);
        //for(w1=w.begin();w1!=w.end();w1++)
            //cout<<*w1<<endl;
        if(s1[s1.size()-1]==' ') //判断最后是否为空格
            cout<<w.size()-1<<endl;
        else cout<<w.size()<<endl;

    }
    return 0;
}
时间: 2024-10-06 22:51:20

hdu 2072 单词数(STL set写法)的相关文章

HDU 2072 单词数 --- stringstream+STL

/* HDU 2072 单词数 --- stringstream+STL */ #include <cstdio> #include <iostream> #include <sstream> #include <string> #include <set> using namespace std; set<string> k; int main() { string s; while (getline(cin, s) &&a

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

HDU 2072 单词数 (STL map)

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

hdoj 2072 单词数 【字符串处理】

题目大意: 输入一组字符串,只由小写字母和空格组成,让你统计不同单词的个数,注意是不同的个数 . 特殊数据 1,直接输入一个换行,应该输出0 2,连续输出多个空格 在加上一个换行 应该输出0 3,输入 "ni shi wo wo de de de de hao     hao "应该输出5 6, 输入" 空格空格ni空格空格shi     " 应该输出2 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2072 #in

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(单词数)题解

以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] “就是统计一篇文章里不同单词的总数”(已经是一句话了..) [题目分析] 明显需要去重,上set,因为按行分析,又没有EOLN用,于是上istringstream. [算法流程] 读一行塞一行干一行爱一行.....发这篇的目的其实是备忘istringstream的用法的.这道题没难点. 1 #include <iostream> 2 #include <sstream> 3 #include <strin

HDU2072 单词数 【STL】+【strtok】

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

单词数 (STL set集合)

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

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 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可以工作的最长时间和一个可以完成的任务的难度的最大值, 一台机器能完成一个任务的条件是这台机器的最长工作时间和能完成任务的难度值必须都大于等于这个任务,而且一台机器最多完成一个任务,假设一个任务的时间为t,难度值为x,那么完成这个任务可以赚到的钱 money = 500 * t + 2 * x; 现在