提问:编写一个函数,
网友回答:
你要用什么语言做这个?以下是我用C++写的参考
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct DATA { char c; int count; } ; typedef vector <DATA> 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; }
测试结果符合你的要求: