题目 :实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
条件:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
例如 输入abcdd输出为dd
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
void main()
{
char a[20];
char c[20];
int b=0;//存最小次数的下表
int d = 0;
int x[20] = {0};
int y[20] = {0};
cin >> a;
for (int i = 0; i < strlen(a); i++)
{ for (int j = 0; j < strlen(a); j++)
if (a[i] == a[j])
x[i] += 1;
}
for (int i = 0; x[i] != 0; i++)
y[i] = x[i];
for (int i = 0; i < strlen(a)-1; i++)
if (x[i]<x[i+1])
{
x[i + 1] = x[i];
b = x[i];
}
else
b = x[i + 1];
for (int i = 0; i < strlen(a); i++)
if ( y[i]!=b)
{
c[d] = a[i];
cout << c[d];
d++;
}
system("pause");
}