天天看點

南郵 OJ 1023 字元串排序

字元串排序

時間限制(普通/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;
	}
}