[LeetCode]初级算法-字符串-数数并说

标题:数数并说

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

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 ,输出报数序列的第 n 项。

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

示例 1:

输入: 1
输出: "1"

示例 2:

输入: 4
输出: "1211"

这个思路还是比较简单的,做n次循环,每次利用上一次循环的得到的字符串来生成下一个字符串

生成的规则就是:从字符串的头开始依次检测,记录相同数字的个数,然后生成下一个字符串

public class countAndSay {
    public static void main(String[] args) {
        System.out.println(countAndSay(4));
    }

    public static String countAndSay(int n) {
        if(n==1){
            return "1";
        }

        StringBuffer sb=new StringBuffer("1");

        
        for(int i=2;i<=n;i++){
            //这个命名没写好,应该用temp的,来表明是作为每一次暂时存在结果的变量
            StringBuffer sb1=new StringBuffer();
            //sb就是上一次循环后生成的结果,遍历sb字符串中的每一个字符
            for(int j=0;j

 

你可能感兴趣的:(JAVA,LeetCode)