2009年5月24日 星期日

ACM Q10062

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Q10062 {


  public static void main(String args[]){
    Scanner cin = new Scanner(System.in);


    String inputLine;
    while (cin.hasNextLine()){
      inputLine = cin.nextLine();

      Scanner tokenize = new Scanner(inputLine).useDelimiter("");
      final HashMap numbers = new HashMap();
      while(tokenize.hasNext()) {
        String tmp = tokenize.next();
        if(!numbers.containsKey(tmp)){
          numbers.put(tmp,1);
        }else{
          int value = numbers.get(tmp)+1;
          numbers.put(tmp,value);
        }
      }

      ArrayList as = new ArrayList(numbers.keySet());
      Collections.sort(as, Collections.reverseOrder());
      Collections.sort( as , new Comparator() {
          public int compare( Object o1 , Object o2 )
          {
          String e1 = o1.toString() ;
          String e2 = o2.toString() ;
          Integer first = (Integer)numbers.get(e1);
          Integer second = (Integer)numbers.get(e2);
          return first.compareTo( second );
          }
          });

      Iterator itr = as.iterator();
      while(itr.hasNext()){
        String s= itr.next();
        System.out.println((int)s.charAt(0)+" "+numbers.get(s));
      }
      if(cin.hasNextLine()){
        System.out.println("");
      }
    }

  }

}

沒有留言:

張貼留言