38.报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

1.     1
2.     11
3.     21
4.     1211
5.     111221

1 被读作 "one 1" ("一个一") , 即 11
11 被读作 "two 1s" ("两个一"), 即 21
21 被读作 "one 2", "one 1""一个二" , "一个一") , 即 1211

给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。

注意:整数顺序将表示为一个字符串。

示例 1:

输入: 1
输出: "1"

示例 2:

输入: 4
输出: "1211"

思路:递归

class Solution {
    public String countAndSay(int n) {
       StringBuilder str = new StringBuilder();
        if(n==1){
            return "1";
        }else{
            String s = countAndSay(n-1);
            int count = 1;
            for(int i=0; i<s.length(); i++){
                if(i<s.length()-1&&s.charAt(i)==s.charAt(i+1)){
                    count++;
                }else{
                    str = str.append(count).append( s.charAt(i));
                    count = 1;
                }
            }
        }
        return str.toString();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 报数 题目 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1...
    饮酒醉回忆阅读 1,443评论 0 1
  • 题目描述: 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1...
    夜空中最亮的星_6c64阅读 1,456评论 0 0
  • 题目报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1211 ...
    HITZGD阅读 1,287评论 0 0
  • LeetCode 38. 报数 链接https://leetcode-cn.com/problems/count-...
    Jaxon张阅读 3,805评论 0 2
  • 睁开双眼,一阵恬淡的熏香浸入鼻间,顿感酥软;那帘幽梦已被秋沾染着温度,有些淡淡的清静。不是桂花的四处飘散,...
    吴枫WF阅读 3,012评论 0 0