题目描述
输入一个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++),主要是在去重上方法各异