题目
描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
输入
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出
删除字符串中出现次数最少的字符后的字符串。
样例输入
abcdd
样例输出
dd
代码
#include <iostream>
#include <string>
using namespace std;
int main()
{
int count[26] = {0};
int k = 0;
string input, output;
getline(cin,input);
output=input;
for (int i = 0; i<input.length(); ++i)
{
count[input[i] - 97]++; //统计次数
}
for (int i = 0; i<input.length(); ++i)//保持原始顺序
{
for (int j = 0; j < 26; ++j)
{
//如果必须要大于另一个字母
if (count[input[i] - 97] > count[j] && count[j]!=0)
{
output[k] = input[i];
k++;
break;
}
}
}
for (int i = 0; i < k; i++)
{
cout << output[i];
}
cout<<endl;
}