提问:编写一个函数,
网友回答:
你要用什么语言做这个?以下是我用C++写的参考
#include
#include
#include
using namespace std;
struct DATA
{
char c;
int count;
} ;
typedef vector V_DATA;
class data_finder
{
public:
data_finder(const int val):m_data(val) {}
bool operator ()(const V_DATA::value_type &value)
{
return value.c == m_data;
}
private:
int m_data;
};
bool compare(const DATA &a,const DATA &b)
{
return a.count>b.count;
}
int tosort(const char *s)
{
char c;
DATA t_d;
V_DATA data;
V_DATA::iterator it=data.end();
while(c=*s++)
{
t_d.count=1;
t_d.c=c;
it=find_if(data.begin(),data.end(),data_finder(c));
if (it == data.end())
data.push_back(t_d);
else
{
it->count++;
t_d.count=it->count;
}
}
sort(data.begin(),data.end(),compare);
for(it = data.begin(); it !=data.end(); it++ )
cout << it->c ;
}
int main()
{
char s[10001];
cin >> s;
tosort(s);
return 0;
}
测试结果符合你的要求: