题目大意:数数并记录,求出第n个字符串序列,字符串序列规律如下:
第一个:1(初始序列)
第二个:11(1个1:在描述第一个序列)
第三个:21(2个1:在描述第二个序列)
第四个:1211(1个2+1个1:在描述第三个序列)
第五个:111221(1个1+1个2+2个1:在描述第四个序列)
分析:循环n-1次遍历上一个字符串得到当前答案字符串。
代码:遍历n-1次字符串
class Solution {
public:
string countAndSay(int n) {
string tmp = "1";
for (int i = 1;i < n;i++) {
int k = 1; //记录当前字符已有个数
string now = "";
for (int j = 0;j < tmp.size();j++) {
if (tmp[j] == tmp[j + 1]) k++;
else {
now = now + char(k + '0') + tmp[j];
k = 1;
}
}
tmp = now;
}
return tmp;
}
};