一、题目要求:
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
二、输入输出
| 输入 |
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于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;
}
本文介绍了一种算法,该算法能够找出并删除输入字符串中出现频率最低的字符,如果存在多个这样的字符则全部删除,并返回经过处理后的字符串。字符串仅包含小写字母,长度限制在20个字节内。通过统计每个字符出现的次数,找到最小出现次数的字符进行删除。

被折叠的 条评论
为什么被折叠?



