[华为上机练习题]7.删除字符串中出现次数最少的字符
题目描写叙述:
实现删除字符串中出现次数最少的字符。若多个字符出现次数一样,则都删除。
输出删除这些单词后的字符串。字符串中其他字符保持原来的顺序。
题目类别: 字符串
难度:中级
执行时间限制: 10Sec
内存限制: 128MByte
阶段:入职前练习
输入:
字符串仅仅包括小写英文字母, 不考虑非法输入。输入的字符串长度小于等于20个字节。
输出:
删除字符串中出现次数最少的字符后的字符串。
例子输入:
abcdd
例子输出:
dd
代码
/*---------------------------------------
* 日期:2015-06-29
* 作者:SJF0115
* 时间:2014
* 题目:删除字符串中出现次数最少的字符
* 来源:华为上机
-----------------------------------------*/
#include <iostream>
#include <climits>
#include <string>
using namespace std;
// 不考虑非法输入
string DeleteMinChar(string str){
string result = "";
int size = str.size();
if(size == 0){
return result;
}//if
// 统计个数
int hash = {0};
for(int i = 0;i < size;++i){
++hash];
}//for
// 最小出现次数
int Min = INT_MAX;
for(int i = 0;i < size;++i){
if(Min > hash]){
Min = hash];
}//if
}//for
// 删除最小出现次数
for(int i = 0;i < size;++i){
if(Min != hash]){
result += str;
}//if
}
return result;
}
int main(){
string str;
//freopen("C:\\Users\\Administrator\\Desktop\\c++.txt","r",stdin);
while(cin>>str){
cout<<DeleteMinChar(str)<<endl;
}//while
return 0;
}
页:
[1]