题解 | #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
#include <array>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
int main() {
unsigned int num;
// 输入这个数字
cin >> num;
vector<char> s;
unsigned short i = 0;
// 将这个数字转换为字符串
while (num != 0) {
s.push_back(num % 10);
num /= 10;
++i;
}
// 去除重复
vector<char>::iterator iter;
vector<char>::iterator iter2;
for(iter = s.begin(); iter != s.end(); ++iter){
for(iter2 = iter + 1; iter2 != s.end(); ++iter2){
if(*iter == *iter2){
s.erase(iter2);
// 这个千万别忘了,不然就段错误了,一定要前移一次
--iter2;
}
}
}
// 将字符再转换为整数
num = 0;
for(iter = s.begin(); iter != s.end(); ++iter){
num = num * 10 + *iter;
}
cout << num;
}
// 64 位输出请用 printf("%lld")
