题目描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
输入描述:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述:
删除字符串中出现次数最少的字符后的字符串。
示例1
输入
abcdd
输出
dd
1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 using namespace std; 5 int main() 6 { 7 string str; 8 while(cin >> str) { 9 int minFreq = 20; 10 int freq[26] = {0}; 11 for(char c : str) { 12 ++freq[c - 'a']; 13 } 14 for(int i = 0; i < 26; ++i) { 15 if(freq[i]) minFreq = min(minFreq, freq[i]); 16 } 17 for(int i = 0; i < str.size(); ++i) { 18 if(freq[str[i]-'a'] != minFreq) cout << str[i]; 19 } 20 cout << endl; 21 } 22 }