输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

提取不重复的整数

http://www.nowcoder.com/questionTerminal/253986e66d114d378ae8de2e6c4577c1

使用两个数据结构;
使用set去重;
使用queue实现数据从右向左;
即可 <输入的虽然是数字,但是我们可以以字符串的形式处理>

#include<iostream>
#include<algorithm>
#include<string>
#include<set>
#include<deque>
#include<map>
using namespace std;

int main() {
    deque<char> q;
    set<char> s;

    string a;
    cin >> a;
    for (int i = a.length()-1; i >= 0; i--)
    {
        if (s.count(a.at(i)) < 1)
        {
            s.insert(a.at(i));
            q.push_back(a.at(i));
        }
    }

    while (!q.empty())
    {
        cout << q.front();
        q.pop_front();
    }



    system("pause");
    return 0;
}
全部评论
哦 明白了 思路不错 一开始没看你代码 抱歉
点赞 回复 分享
发布于 2020-02-16 18:39
使用set可以去重,但会把数据升序排列,打乱了输出顺序
点赞 回复 分享
发布于 2020-02-15 16:58

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务