FZU-单词问题

来源:互联网 发布:国产碳纤维 知乎 编辑:程序博客网 时间:2024/05/17 01:04

 Problem Description

给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。

 Input

输入包含多组数据 输入数据第一行是一个句子,只包含可见字符(不包含空格)。句子长度不超过 100。

 Output

按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。

 Sample Input

Orz_YaYaMao_Orz_Daxia_Orz_EveryOne

 Sample Output

Orz
YaYaMao
Daxia
EveryOne



分析:map


#include<iostream>#include<string.h>#include<stdio.h>#include<ctype.h>#include<algorithm>#include<stack>#include<queue>#include<set>#include<math.h>#include<vector>#include<map>#include<deque>#include<list>using namespace std;string a,temp;map<string,int>m;int main(){    while(cin>>a)    {        temp="";        m.clear();        int len=a.length();        for(int i=0; i<len; i++)        {            if(isalpha(a[i]))                temp=temp+a[i];            else            {                if(temp!=""&&!m[temp])                {                    cout<<temp<<endl;                    m[temp]=1;                }                temp="";            }        }        if(temp!=""&&!m[temp])            cout<<temp<<endl;    }    return 0;}