题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述: 输入一个int型整数
输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
输入例子: 9876673
输出例子: 37689
【一解】
- int main()
- {
- int n,a[1000]={0};
- int num=0;
- cin >> n;
- while(n)
- {
- if(a[n%10]==0)
- {
- a[n%10]++; //遇到相同的数跳过
- num = num*10+n%10;
- }
- n/=10;
- }
- cout<<num<<endl;
- return 0;
- }
【二解】
int main()
{ string str;
int a[10] = {0};
getline(cin, str);
for (int i = str.size()-1; i >= 0; i--)
{ if (a[str[i] - '0'] == 0)
{ cout << str[i];
a[str[i] - '0']++;
}
}
return 0;
}
【三解】
- #include<iostream>
- #include<string>
- #include<vector>
- #include<algorithm>
- using namespace std;
- int main()
- {
- string str;
- vector<char> v;
- while(cin>>str)
- {
- reverse(str.begin(), str.end());
- for(int i=0; i<str.length(); i++)
- {
- if(find(v.begin(),v.end(),str[i]) == v.end())
- {
- v.push_back(str[i]);
- }
- }
- for(auto it : v)
- cout<<it;
-
- cout<<endl;
- v.clear();
- }
- return 0;
- }