2019华为勇敢星实习计划——第一题
解题思路:使用TreeMap保存统计数据,然后按keySet遍历,同时计数器减一。
package BiShiTi;
import java.util.Scanner;
import java.util.TreeMap;
public class m_0016 {
public static void main(String [] args) {
Scanner scan = new Scanner(System.in);
// 对于多个测试案例
while (scan.hasNext()) {
String oriStr = scan.nextLine();
int oriStrLen = oriStr.length();
TreeMap<Character, Integer> mapStr = new TreeMap<Character, Integer>();
for (int i = 0; i < oriStrLen; i++) {
char c = oriStr.charAt(i);
if (mapStr.containsKey(c)) {
mapStr.put((char)c, mapStr.get(c)+1);
}else{
mapStr.put((char)c, 1);
}
}
// TreeMap本身特性:按key升序排序
// 如需按value排序,则可将TreeMap的EntrySet转换成List<Entry<String, String>>,然后实现Collections.sort()
for (int i = 0; i < oriStrLen; i++) {
for (char c : mapStr.keySet()) {
if (mapStr.containsKey(c) && mapStr.get(c) > 0) {
System.out.print(c);
mapStr.put(c, mapStr.get(c) - 1);
}
}
}
}
}
}