一、题目要求:
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
二、输入输出
输入 |
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。 |
---|---|
输出 |
删除字符串中出现次数最少的字符后的字符串。 |
样例输入 | abcdd |
样例输出 | dd |
三、代码实现
#include<iostream>
#include<string>
using namespace std;
int search_min(int counter[])
{
int len,Min;
Min = 100;
for(int i=0;i<26;++i)
{
if(counter[i]<Min&&counter[i]!=0)
Min=counter[i];
}
return Min;
}
int main()
{
string str0;
string result="";
int flag,_min,len;
int letter_count[26]={0};
cin>>str0;
len = str0.size();
for(int i=0;i<len;++i)
{
flag=int(str0[i])-97;
letter_count[flag]++;
}
_min=search_min(letter_count);
for(int i=0;i<len;++i)
{
flag=int(str0[i])-97;
if(letter_count[flag]!=_min)
{
result+=str0[i];
}
}
cout<<result;
return 0;
}