思路:
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;
}
};
Every step of barefoot running deserves to be recorded