Leetcode记录-Q38-外观数列
解题思路
典型的递归调用
- 
1 - 
11 - 
21 - 
1211 - 
111221 
循环调用前一次的结果,进行计数。当n=1时,递归结束,返回1.
代码
class Solution {
    public String countAndSay(int n) {
         if (n == 1) {
            return "1";
        }
        String s = countAndSay(n - 1);
        StringBuilder sb = new StringBuilder();
        int cnt = 0;
        for (int i = 0; i < s.length(); i++) {
            if (i == s.length() - 1) {
                cnt++;
                sb.append(cnt).append(s.charAt(i));
            } else if (s.charAt(i) == s.charAt(i + 1)) {
                cnt++;
                continue;
            } else {
                sb.append(cnt+1).append(s.charAt(i));
                cnt=0;
            }
        }
        return sb.toString();
    }
}
                    
                

                
            
        
浙公网安备 33010602011771号