題目描述
??輸入一個字符串,求出該字符串包含的字符集合。
輸入
??每組數(shù)據(jù)輸入一個字符串,字符串最大長度為100,且只包含字母,不可能為空串,區(qū)分大小寫。
輸出
??每組數(shù)據(jù)一行,按字符串原有的字符順序,輸出字符集合,即重復(fù)出現(xiàn)并靠后的字母不輸出。
示例
輸入
abcqweracb
輸出
abcqwer
解題
思路
??這道題我看到的時候就決定用set來寫,但是一開始沒有看到按照原來的順序輸出,所以WA了一發(fā)。后來發(fā)現(xiàn)可以不需要用set來保存數(shù)據(jù),只需要用set來查重就可以了,也就是輸入一個,在set里面找有沒有,有就輸入下一個,沒有就插入到set中,并輸出到屏幕上。還有一個特殊的就是我用了字符串流的概念。
代碼
#include <iostream>
#include <set>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string s;
char c;
while (getline(cin,s))
{
set<char> letter;
stringstream str(s);
set<char>::iterator iter;
while (str >> c) {
iter = letter.find(c);
if (iter == letter.end()) {
letter.insert(c);
cout << c;
}
}
cout << endl;
}
}