package OJ;
import java.util.*;
public class Demo1 {
/**
* @字符统计
* 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
* 实现以下接口:
* 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)
* 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出
* 清空目前的统计结果,重新统计
* 调用者会保证:
* 输入的字符串以‘\0’结尾。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] arr = str.toCharArray();
int[] num = new int[str.length()];
for(int i=0;i<str.length();i++){
num[str.indexOf(str.charAt(i))]++;
}
TreeSet<CharCount> ts = new TreeSet<CharCount>();
for(int i=0;i<str.length();i++){
if(num[i]!=0)
ts.add(new CharCount(str.charAt(i),num[i]));
}
Iterator<CharCount> it = ts.iterator();
while(it.hasNext()){
CharCount cc = it.next();
char ch = cc.getCh();
int val = cc.getNum();
sop(ch);
}
}
public static void sop(Object obj){
System.out.print(obj);
}
}
class CharCount implements Comparable<CharCount>{
private char ch;
private int num;
public CharCount(char ch, int num) {
super();
this.ch = ch;
this.num = num;
}
public int compareTo(CharCount o) {
if(this.num>o.num)
return -1;
else
if(this.num<o.num)
return 1;
return this.ch-o.ch;
}
public char getCh() {
return ch;
}
public void setCh(char ch) {
this.ch = ch;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}