您的位置:首页 > 编程语言 > C语言/C++

华为机试在线训练-牛客网(6)提取不重复的整数

2017-01-23 22:11 363 查看


题目描述

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

输入描述:
输入一个int型整数

输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

输入例子:
9876673


输出例子:
37689


作为机试题追求方便,尽量使用STL库来解决,因此我的思路如下:

此题主要是反转和去重两个问题,为简单转换为字符串处理,前者调用reverse()函数处理,后者调用find()实现去重:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
string inputStr,outputStr;
cin>>inputStr;
reverse(inputStr.begin(),inputStr.end());
for(auto e :inputStr){
if(find(outputStr.begin(),outputStr.end(),e)==outputStr.end())
outputStr.push_back(e);
}
cout<<outputStr;
return 0;
}

这题牛客上貌似没见到更简洁的做法(C++),主要是在去重上方法各异
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 C++ 牛客网 OJ 华为