题目: 外观数列

来自智得网
跳转至: 导航、​ 搜索

分析

递归

因为本题是一个递归的公式定义。

所以可以尝试使用递归进行求解,f(n)对f(n-1)的数字进行描述。

描述的过程是对连续相同的数字进行计数,然后将这些计数信息描述出来。

题解

class Solution {
    public String solute(int n) {
        if (n == 1) {
            return "1";
        }
        StringBuffer result = new StringBuffer();
        String facadeString = solute(n - 1);
        int length = facadeString.length();
        int sameCharStart = 0;
        for (int i = 1; i < length + 1; i++) {
            if (i == length) {
                result.append(i - sameCharStart).append(str.charAt(sameCharStart));
            } else if (facadeString.charAt(i) != facadeString.charAt(sameCharStart) ) {
                result.append(i - sameCharStart).append(facadeString.charAt(sameCharStart));
                sameCharStart = i;
            }
        }
        return result.toString();
    }
}