您的位置:首页 > 其它

【leetcode】Count and Say (easy)

2015-05-17 21:19 351 查看
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.

Note: The sequence of integers will be represented as a string.

十天没做题了,赶快秒个小题练练手。

思路:就是数每种数字出现了几次。

string countAndSay(int n) {
string s = "1";
while(--n) //从1开始计数
{
string stmp;
char c[10];
for(int i = 0; i < s.length(); )
{
int count = 0;
char cur = s[i];
while(i < s.length() && s[i] == cur) //数当前重复出现的数字
{
count++;
i++;
}
sprintf(c, "%d%d", count, cur - '0');
stmp += c;
}
s = stmp;
}
return s;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: