import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String s = in.nextLine(); char[]arr = s.toCharArray(); HashMap<Integer, List<Integer>>map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { if (arr[i] >= 65 && arr[i] <= 90) { int key = arr[i] - 'A'; if (!map.containsKey(key)) { List<Integer>list = new ArrayList<>(); list.add(i); map.put(key, list); } else { map.get(key).add(i); } } else if (arr[i] >= 97 && arr[i] <= 122) { int key = arr[i] - 'a'; if (!map.containsKey(key)) { List<Integer>list = new ArrayList<>(); list.add(i); map.put(key, list); } else { map.get(key).add(i); } } } PriorityQueue<Integer>queue = new PriorityQueue<>(); for (Integer key : map.keySet()) { for (int i = 0; i < map.get(key).size(); i++) { queue.add(map.get(key).get(i)); } } for (int i = 0; i < 26; i++) { if (map.containsKey(i)) { List<Integer>list = map.get(i); for (int j = 0; j < list.size(); j++) { int index = queue.poll(); if (s.charAt(list.get(j)) >= 'a' && s.charAt(list.get(j)) <= 'z') { arr[index] = (char)(i + 'a'); } else { arr[index] = (char)(i + 'A'); } } } } System.out.println(new String(arr)); } } }