美文网首页
38.Count and Say

38.Count and Say

作者: 花落花开花满天 | 来源:发表于2018-10-29 16:55 被阅读0次

    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

    最开始不是很懂规律,后来才知道就是数一下前面相同数字的个数,比如5前面4的序列是1211,就是1个“1”,1个“2”,2个“1”,(不连续的不能合并),所以5的序列就是111221。

    我使用了递归算法获取前一个数的序列,然后进行统计。

    注意点:

    1.判断递归的边界。

    2.统计是判断序列的边界。

    3.序列的类型为字符串。

    代码:

    stringcountAndSay(intn)

    {

        if(n==1)  //判断递归边界

            return"1";

        stringArray;

        Array="";

        intcount=1;

        stringres=countAndSay(n-1);

        cout<<"result="<

        for(inti=0;i

        {

            if(i==res.length()-1)  //判断序列边界

            {

                Array+=to_string(count);

                Array+=res[i];

                cout<

                returnArray;

            }

            else if(res[i]==res[i+1])  //统计相同的数字

            {

                count++;

                continue;

            }

            Array+=to_string(count);

            Array+=res[i];

            cout<

            count=1;

        }

        returnArray;

    }

    相关文章

      网友评论

          本文标题:38.Count and Say

          本文链接:https://www.haomeiwen.com/subject/efzbtqtx.html