字符串排序
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1529 测试通过 : 341
比赛描述
有一些A、C、M组成的字符串,将其按字符A排序。
输入
一组测试数据,输入数据由若干行组成,每行是字符A、C或M组成的字符串。(每个字符串长度不超过1200)
输出
对所有输入的数据,先按字符A的个数进行升序排序,如果字符A的数量相等,再按出现的先后顺序排序,每行输出一个字符串。
样例输入
ACM
MCA
AACAAMMM
AACCMM
CMAAMMMMMM
AAA
样例输出
ACM
MCA
AACCMM
CMAAMMMMMM
AAA
AACAAMMM
题目来源
NUPT
#include <iostream>
#include <string>
#include <algorithm>
#define MAXNUM 256
using namespace std;
int compare(string str0,string str1){
return(count(str0.begin(),str0.end(),'A')<count(str1.begin(),str1.end(),'A'));
}
int main(void){
string str[MAXNUM];
int n=0,i=0;
while(cin>>str[n]){
++n;
}
stable_sort(str,str+n,compare);
for(i=0;i<n;++i){
cout<<str[i]<<endl;
}
}