题解 | #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
#include <iostream> #include<algorithm> #include <vector> #include <set> using namespace std; int main() { //输入 string n; getline(cin,n); vector<int> num; for(int i=0;i<n.length();i++){ int tmp = n[i] - (int)'0'; num.push_back(tmp); } //去重 //set<int> s(num.begin(),num.end()); for(int i=num.size()-1;i>=1;i--){ for(int j=i-1;j>=0;j--){ if(num[i] == num[j])num[j] = 0; } } //输出 for(int i=num.size()-1;i>=0;i--){ if(num[i])cout<<num[i]; } } // 64 位输出请用 printf("%lld")
做的过程花了很多时间,反过来看这题居然是入门难度。确实,用set、unique等都不大行得通,反倒是最基础的逻辑算法,用两层for循环最省事。
反思:要认清楚这种题目,既然就是考编程基础,那就用基础求解吧,只是考试时不知道题目难度是入门还是困难。