题解 | #提取不重复的整数#
提取不重复的整数
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")