一、题目:
描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
输入描述:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述:
删除字符串中出现次数最少的字符后的字符串。
二、输入输出示例:
三、思路:
首先要记录输入的字符串中每个字符出现的次数,然后在次数中找出最少的次数,然后用s.erase()函数将出现最少次数的字符删除就可以了,但记录字符出现的次数一定要和字符串中的字符对应,这就需要用s[i]-'a'来作为记录次数的数组下标。
四、代码:
#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
int main()
{
string s;
while(cin>>s)
{
int count[26] = {0};
//将每个字符出现的次数对应地放入count数组中
for(int i=0;i<s.size();i++)
{
count[s[i]-'a']