您的位置:首页 > 其它

[LeetCode]Count and Say

2015-07-15 15:38 302 查看
The count-and-say sequence is the sequence of integers beginning as

follows: 1, 11, 21, 1211, 111221, …

1 is read off as “one 1” or 11.

11 is read off as “two 1s” or 21.

21 is read off as “one 2, then one 1” or 1211.

Given an integer n,

generate the nth sequence.

其实题目的意思是,下一个string是统计上一个string中数字的个数

如1因为只有一个1,所以下一个string为11

11有两个1,所以下个string为21

1211中有一个1,一个2,两个1,所以下个string为111221

class Solution {
public:
string countAndSay(int n) {
vector<string> sn(n+1);;
sn[1] = "1";
for(int i = 2; i<=n; ++i){
string s = sn[i];
int j = 0;
while(j<=sn[i-1].size()-1){
int k = 1;
while(j+k<=sn[i-1].size()-1&&sn[i-1][j+k-1]==sn[i-1][j+k])  ++k;
s+=('0'+k);
s+=(sn[i-1][j+k-1]);
j= j+ k;
}
sn[i]=s;
}
return sn
;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: