版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaoshuling1109/article/details/82657705
题目:
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
while(getline(cin,str))
{
int a[26]={0};
//对出现的字符进行统计
for(int i=0;i<str.length();i++)
{
a[str[i]-'a']++;
}
//for(int i=0;i<26;i++)cout<<i<<" "<<a[i]<<endl;
int min=a[str[0]-'a'];
//计算出现min的个数
for(int i=0;i<str.length();i++)
{
if(a[str[i]-'a']<=min)
min=a[str[i]-'a'];
}
//删除最少的min的字母
for(int i=0;i<str.length();i++)
{
if(a[str[i]-'a']>min)
cout<<str[i];
}
cout<<endl;
}
}