算法 提取不重复整数
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
思路:将整数每一位,从个位开始保存到无序的map,再遍历map即可
注意需要判断是否插入成功
#include <iostream>
#include <iterator>
#include <unordered_map>
using namespace std;
int main() {
int n, index;
int arry[10] = { 0 };
unordered_map <int, int> vNumber;
int length = 0;
cin >> n;
index = n;
while (index) {
index /= 10;
length++;
}
index = n;
for (int i = 0; i < length ; i++) {
int number = index % 10;
if(vNumber.find(number)==vNumber.end())
vNumber.insert(make_pair(number, number));
index /= 10;
}
for (unordered_map<int, int>::iterator s = vNumber.begin(); s != vNumber.end(); s++) {
cout << s->second;
}
cout << endl;
return 0;
}
VS下输出跟OJ上输出结果不一样,OJ有问题,不能AC已经反馈