import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param param string字符串
* @return string字符串
*/
public String compressString (String param) {
// write code here
//空字符串直接返回
if ("".equals(param)) {
return "";
}
List<Map<Character, Integer>> list = new ArrayList<>();
char[] chars = param.toCharArray();
Character cur = chars[0];
String compressStr = "";
String temp = "";
int count = 1;
HashMap<Character, Integer> characterIntegerHashMap;
//shopeew
//aabcccccaaa
for (int i = 0; i < chars.length; i++) {
//边界处理
if (i == (chars.length - 1)) {
characterIntegerHashMap = new HashMap<>();
characterIntegerHashMap.put(chars[i], count);
list.add(characterIntegerHashMap);
count = 1;
break;
}
if ((chars[i] == chars[i + 1])) {
count++;
} else {
characterIntegerHashMap = new HashMap<>();
characterIntegerHashMap.put(chars[i], count);
list.add(characterIntegerHashMap);
count = 1;
}
}
for (int i = 0; i < list.size(); i++) {
String curStr = "";
Character key = 'c';
Map<Character, Integer> characterIntegerMap = list.get(i);
Iterator<Character> iterator = characterIntegerMap.keySet().iterator();
while (iterator.hasNext()) {
key = iterator.next();
}
Integer integer = characterIntegerMap.get(key);
if (integer == 1) {
curStr = key.toString();
} else {
curStr = key.toString() + integer;
}
compressStr += curStr;
}
return compressStr;
}
}