输入一个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

相关推荐

纸鹰:对他说:“你好,我是百度JAVA。”
点赞 评论 收藏
分享
04-18 00:32
已编辑
中南大学 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务