美文网首页
华为2016研发工程师编程题-字符集合

华为2016研发工程师编程题-字符集合

作者: Mikito_k | 来源:发表于2018-06-01 15:28 被阅读80次

题目描述

  输入一个字符串,求出该字符串包含的字符集合。

输入

  每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。

输出

  每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。

示例

输入

abcqweracb

输出

abcqwer

解题

思路

  这道题我看到的时候就决定用set来写,但是一开始没有看到按照原来的顺序输出,所以WA了一发。后来发现可以不需要用set来保存数据,只需要用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;
        }
    }

相关文章

网友评论

      本文标题:华为2016研发工程师编程题-字符集合

      本文链接:https://www.haomeiwen.com/subject/qnkksftx.html