题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
1.统计每个字符出现的次数
定义大小为26的数组s,char-'a'作为索引,统计每个字符出现的次数。
找出不为0 的最小值min。
2.输出
循环字符串,计算当前字符在s中的索引值,若该索引值大于min,输出该字符;
3.代码
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;</algorithm></vector></string></iostream>
int main()
{
string str;
while(cin>>str)
{
int s[26];
for(int i = 0;i<26;i++)
s[i] = 0;
for(int i = 0;i<str.size();i++) { int j = str[i]-'a'; s[j]++; } int min_s = 26; for(int i = 0;i<26;i++) { if(s[i]<min_s && s[i] != 0) min_s = s[i]; } for(int i = 0;i<str.size();i++) { int j = str[i]-'a'; if(s[j]>min_s) cout<<str[i]; } cout<<endl; }
}