/* * 解题思路: 统计字符出现的次数, 然后排序, 可以考虑用TreeMap * 补充说明: 该题选用的当前数据结构性能较差, 可将TreeMap换成HashMap, 将ArrayList换成Stack或LinkedList (换了好像性能更差了) */ import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>(); String str = sc.nextLine(); for (int i = 0; i < str.length(); i++) { int key = str.charAt(i); int value = (map.containsKey(key) ? map.get(key) + 1 : 1); map.put(key, value); } ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() { public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) { return o1.getValue() - o2.getValue(); } }); Map.Entry<Integer, Integer> entry = list.remove(0); int min = entry.getValue(); String res = str.replace((char)entry.getKey().intValue() + "", ""); while (!list.isEmpty()) { entry = list.remove(0); if (entry.getValue() > min) { break; } res = res.replace((char)entry.getKey().intValue() + "", ""); } System.out.println(res); } } }