描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围:1≤n≤108
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例
输入:9876673
输出:37689
代码
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string a, b;
cin >> a;
map<char, int> num_map;
for (int i = 0; i < a.size(); i++) {
int index = a.size() - i - 1;//字符串索引,从右往左
num_map.insert(pair<char, int>(a[index], index));//将字符作为key,存入map,去除重复
}
vector<pair<char, int>> num_array(num_map.begin(), num_map.end());
sort(num_array.begin(), num_array.end(), [](pair<char, int>& a,
pair<char, int>& b) {
return a.second > b.second;
});//按照索引位置index排序,从大到小,即从右往左顺序
for (int i = 0; i < num_array.size(); i++) {
cout << num_array[i].first;
}
}
结果