import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param chars char字符型一维数组 * @return char字符型一维数组 */ public char[] compress (char[] chars) { // write code here Map<Character, Integer> myMap = new HashMap<>(); for (int i = 0; i < chars.length; i++) { myMap.put(chars[i], myMap.getOrDefault(chars[i], 0) + 1); } StringBuilder stringBuffer = new StringBuilder(); for (Map.Entry<Character, Integer> map : myMap.entrySet()) { if (map.getValue() > 1) { stringBuffer.append(map.getKey()); stringBuffer.append(map.getValue()); } else { stringBuffer.append(map.getKey()); } } return stringBuffer.toString().toCharArray(); } }
本题所用编程语言是java,可以考虑用栈也可以考虑用哈希表统计每个字符出现的次数