import java.io.*; import java.util.*; class Node { char ch; int count; Node next; Node(char ch, int count) { this.ch = ch; this.count = count; } Node() { } } // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); br.close(); int[] arr = new int[26]; int[] narr = new int[10]; for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (Character.isDigit(ch)) { narr[ch - '0']++; } else { arr[ch - 'a']++; } } Node dummy = new Node(); buildList(dummy, narr, true); buildList(dummy, arr, false); Node cursor = dummy.next; while (cursor != null) { System.out.print(cursor.ch); cursor = cursor.next; } } public static void buildList(Node dummy, int[] arr, boolean isDigit) { for (int i = 0; i < arr.length; i++) { if (arr[i] != 0) { Node cursor = dummy.next; Node prev = dummy; int k = isDigit ? '0' : 'a'; Node t = new Node((char)(i + k), arr[i]); while (cursor != null) { if (cursor.count < arr[i]) { t.next = cursor; prev.next = t; break; } prev = cursor; cursor = cursor.next; } if (cursor == null) { prev.next = t; } } } } }