描述
有一些A、C、M组成的字符串,将其按字符A排序。
输入
一组测试数据,输入数据由若干行组成,每行是字符A、C或M组成的字符串。
输出
对所有输入的数据,先按字符A的个数进行升序排序,如果字符A的数量相等,再按出现的先后顺序排序,每行输出一个字符串。
样例输入
ACM
MCA
AACAAMMM
AACCMM
CMAAMMMMMM
AAA
样例输出
ACM
MCA
AACCMM
CMAAMMMMMM
AAA
AACAAMMM
#include<iostream> #include<algorithm> #include<string> #define MAXNUM 100 using namespace std; string arr[MAXNUM]; int index=-1; bool compare(string str1,string str2) { int num1=0,num2=0; for(int i=0;i<str1.length();i++) { if(str1[i]=='A') { num1++; } } for(int i=0;i<str2.length();i++) { if(str2[i]=='A') { num2++; } } return num1<num2; } int main() { string temp; while(cin>>temp) { arr[++index]=temp; } sort(arr,arr+index+1,compare); for(int i=0;i<=index;i++) { cout<<arr[i]<<endl; } return 0; }