首页 > 其他 > 详细

leetcode-38-count and say

时间:2020-07-20 17:29:33      阅读:69      评论:0      收藏:0      [点我收藏+]

思路:

1.每一行字符串的规律就是对上一行的读取解释(下一行=上一行中 连续相同元素个数+元素值)

2.生成对应行数

3.遍历行中字符串

4.用k记录字符个数

5.将读取数据放入new string ns 中(ns +=to_string(k-j)+s[j])

 

代码:

class Solution {
public:
    string countAndSay(int n) {
        //设定初始值
        string s="1";
        //生成n行
        for(int i=0;i<n-1;i++)
        {
            //更新行中的字符串
            string ns;
            //遍历
            for(int j=0;j<s.size();j++)
            {
                //用K记录数值相同的个数
                int k=j;
                while(k<s.size() && s[k]==s[j]) k++;
                //下一行就重复个数+数字
                ns +=to_string(k-j) +s[j];
                j=k-1;//连续相同的结束后需要重置
            }
            s=ns;
        }
        return s;
    }
};

leetcode-38-count and say

原文:https://www.cnblogs.com/Sunshineboy1/p/13345665.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!