欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

38. Count and Say —— Java

程序员文章站 2022-07-15 12:29:02
...

The count-and-say sequence is the sequence of integers with the first five terms as following:

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

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.

Given an integer n, generate the nth term of the count-and-say sequence.

Note: Each term of the sequence of integers will be represented as a string.

38. Count and Say —— Java


class Solution {
    public String countAndSay(int n) {
        if(n <= 1)
            return "1";
        else{
            String str = countAndSay(n-1);    //递归
            char[] say = str.toCharArray();
            int count = 1;          //计算重复多少个
            int index = 0;          //重复值的位置
            String result = "";     //结果
            for(int i=1;i<say.length;i++){
                if(say[index] == say[i])
                    count++;
                else{                        
                    result = result + String.valueOf(count) + String.valueOf(say[index]);      //不一样,将前一个加进result  
                    index = i;          //记录当前第一个不重复的数字的位置
                    count = 1;
                }
            }
            result = result + String.valueOf(count) + String.valueOf(say[index]);    //最后一次循环结束,并没有加进result里面,这里加进去
            return result;
        }
    }
}