华为oj之提取不重复的整数 -极客玩家Bravo Yeung博客

华为oj之提取不重复的整数

Bravo Yeung 2016/09/18 12:56:52

编程训练

题目: 提取不重复的整数

  • 热度指数:4740 时间限制:1秒 空间限制:32768K
  • 本题知识点: 数组

题目描述

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

输入描述:
1
输入一个int型整数
输出描述:
1
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
输入例子:
1
2
9876673

输出例子:
1
37689

在线提交网址:

http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1?tpId=37&tqId=21232&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking

分析:

先将该输入的字符串进行逆序, 使用一个vector存储每一个字符, 存入要求是当vector中没有该字符(使用算算法库中的find()函数). 最后遍历该向量, 输出即可.

已AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;
int main()
{
	string str;
	vector<char> vect;
	while(getline(cin,str))
	{
		reverse(str.begin(), str.end());		
		for(int i=0;i<str.length();i++)
		{
			if(find(vect.begin(),vect.end(), str[i]) == vect.end())
			{
				vect.push_back(str[i]);  
			}
		}
		for(auto it: vect)
			cout<<it;

		cout<<endl;    // 如果用set, set会用一个字符最后一次出现的地方覆盖之前的, 此处不能用
		vect.clear();
	}
	return 0; 
}

文档信息


一个有故事的程序员

(转载本站文章请注明作者和出处 大白技术控-Bravo Yeung-极客玩家

点击了解 :.NET 技术人的网站

Show Disqus Comments

Post Directory