题目
描述:
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
题目类别: 字符串
难度: 中级
运行时间限制: 10Sec
内存限制: 128MByte
阶段: 入职前练习
输入:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出:
删除字符串中出现次数最少的字符后的字符串。
样例输入:
abcdd
样例输出:
dd
代码
#include <iostream>
#include <string>
#include <climits>
using namespace std;
string DeleteMinChar(string str){
string result = "";
int size = str.size();
if (size == 0) {
return result;
}
//统计个数
int a[256] = {0};
for (int i = 0; i < size; i++) {
++a[str[i]];
}
int min = INT_MAX;
//得到最小的个数
for (int j = 0; j < size; j++) {
if (min > a[str[j]]) {
min = a[str[j]];
}
}
//去除最小个数的字符
for (int k = 0; k < size; k+&#