jarod8016b 发表于 2017-7-10 17:26:52

[华为上机练习题]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]
查看完整版本: [华为上机练习题]7.删除字符串中出现次数最少的字符