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;
}