#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
while (getline(cin,s))
{
int a[26] = { 0 };
//统计出一串字符中每种字母的数目
for (int i = 0; i < s.length(); i++)
{
if (s[i] >= 'a' && s[i] <= 'z')
{
int m = s[i] - 'a';
a[m]++;
}
}
//找出次数最少的那种字母的个数
int min = 20;
for (int i = 0; i < 25; i++)
{
if (a[i] > 0)
{
if (a[i] <= min)
{
min = a[i];
}
}
}
//删除字母出现次数最少的字母
for (int i = 0; i < 26; i++)
{
char temp;
if (a[i] == min && a[i] != 0)
{
switch (i)
{
case 0: temp = 'a';
break;
case 1: temp = 'b';
break;
case 2: temp = 'c';
break;
case 3: temp = 'd';
break;
case 4: temp = 'e';
break;
case 5: temp = 'f';
break;
case 6: temp = 'g';
break;
case 7: temp = 'h';
break;
case 8: temp = 'i';
break;
case 9: temp = 'j';
break;
case 10: temp = 'k';
break;
case 11: temp = 'l';
break;
case 12: temp = 'm';
break;
case 13: temp = 'n';
break;
case 14: temp = 'o';
break;
case 15: temp = 'p';
break;
case 16: temp = 'q';
break;
case 17: temp = 'r';
break;
case 18: temp = 's';
break;
case 19: temp = 't';
break;
case 20: temp = 'u';
break;
case 21: temp = 'v';
break;
case 22: temp = 'w';
break;
case 23: temp = 'x';
break;
case 24: temp = 'y';
break;
case 25: temp = 'z';
break;
default:
break;
}
for (int i = 0; i < s.length(); i++)
{
if (s[i] == temp)
s.erase(s.find(temp), 1);
}
}
}
cout << s << endl;
}
return 0;
}
刷题:华为机试 HJ23 删除字符串中出现次数最少的字符
最新推荐文章于 2023-11-10 15:09:35 发布