比赛描述:
有一些A、C、M组成的字符串,将其按字符A排序。
输入:
一组测试数据,输入数据由若干行组成,每行是字符A、C或M组成的字符串。(每个字符串长度不超过1200)
输出:
对所有输入的数据,先按字符A的个数进行升序排序,如果字符A的数量相等,再按出现的先后顺序排序,每行输出一个字符串。
样例输入:
ACM
MCA
AACAAMMM
AACCMM
CMAAMMMMMM
AAA
样例输出:
ACM
MCA
AACCMM
CMAAMMMMMM
AAA
AACAAMMM
代码如下:
import java.util.Scanner; public class Main1023 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] s = new String[2000]; int[] count = new int[2000]; int i=0; while(sc.hasNextLine()) { s[i++] = sc.nextLine(); if(s[i-1].equals("")) { break; } int res = numberOfA(s[i-1]); count[i-1] = res; } int number = i; int pos = 0; while(number!=0) { int min=2000; for(int j=0;j<i;j++) { if(min>count[j]) { min = count[j]; pos = j; } } count[pos]=2000; System.out.println(s[pos]); number--; } } public static int numberOfA(String s) { if(s==null||s.length()==0) { return 0; } int sum=0; for(int i=0;i<s.length();i++) { if(s.charAt(i)=='A') { sum++; } } return sum; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/snchenjt/article/details/47423221