华为2017校招第二题删除重复的数,得到最大值。
2017-08-23 21:19
267 查看
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#include <string>
#include <cstring>
int main(){
string str;
int a[128];
while(cin>>str){
memset(a,0,sizeof(a));
int len=str.size();
for(int i=0;i<len;i++){
a[str[i]]++;
}
for(int i=0;i<str.length();i++){
for(int j=i;j<str.length();j++){
if(str[i]<str[j]&&a[str[i]]>1)
{
a[str[i]]--;
str.erase(i,1);
}
else if(str[i]==str[j]&&i!=j){
a[ 4000 str[j]]--;
str.erase(j,1);
}
}
// for(int i=0;i<str.length();i++)
//cout<<i<<" "<<a[str[i]]<<endl;
}
// for(int i=0;i<str.length();i++)
// cout<<i<<" "<<a[str[i]]<<endl;
// cout<<str.length();
cout<<str<<endl;
}
}
相关文章推荐
- 华为2018校招第二题 求去重后的最大整数
- 华为2017校招机试题第一题同网CS
- 删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最大的记录
- SQL针对单列删除重复数据只保留一条id最大的数据
- 给数组添加一个根据指定下标删除元素的方法、得到0-100的随机数不重复(js)、得到外联样式的css样式值
- 华为上机考试题----删除重复字符串和约瑟夫环
- 【名企笔试】美团2017校招笔试(最大矩形面积)
- 2017秋招,网易校招网络笔试第二题,java实现
- 删除有序数组中的重复元素,返回数组的新长度,但允许最大重复次数为2
- 任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432, 一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,
- 2017校招全国笔试第二唱
- 华为软件类校招 2014年9月3日 熟悉机考环境 1.记票统计 2.求最大递增数 3.Word Maze(单词迷宫)
- 华为机试题目:删除重复字符
- 数据库表中有重复记录,如何删除这些重复记录保留ID最大的一个信息
- 2015年华为校招机试题和代码实现(分解字符串,拼音转数字,去除重复字符并排序,等式变换)
- 两道2017华为校招Java面试题
- 美团2017校招-最大矩形面积
- 2017校招-保留最大数
- [华为机试练习题]24.删除链表中的重复节点、剩余节点逆序输出
- 2015年校招--华为上机笔试题--去重复单词