1023-字符串排序

描述

有一些ACM组成的字符串,将其按字符A排序。

输入

一组测试数据,输入数据由若干行组成,每行是字符ACM组成的字符串。

输出

对所有输入的数据,先按字符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; 
}  

  

原文地址:https://www.cnblogs.com/Rosanna/p/3436543.html