import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param param string字符串
     * @return string字符串
     */
    public String compressString (String param) {
        // 压缩的数字
        int num = 1;
        char[] array = param.toCharArray();
        // 字符长度
        int length = array.length;
        // 快指针
        char faster;
        // 慢指针
        char slower;
        // 压缩后的字符串存储
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            slower = array[i];
            boolean isAppend = false;
            if ((i + 1) < length) {
                faster = array[i + 1];
                if (slower == faster) {
                    num = num + 1;
                } else {
                    isAppend = true;
                }
            } else {
                isAppend = true;
            }
            if (isAppend) {
                sb.append("" + slower);
                if (num > 1) {
                    sb.append(num);
                }
                num = 1;
            }
        }
        return sb.toString();
    }
}

利用快慢指针处理,两两相比,直到遇到不一样时,将慢指针的数据存储String里,并判断相同时数字自增是否大于1,大于就拼接,然后继续将num数字置为1,再继续寻找