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 = "";
while(--n) //从1开始计数
{
string stmp;
char c[];
for(int i = ; i < s.length(); )
{
int count = ;
char cur = s[i];
while(i < s.length() && s[i] == cur) //数当前重复出现的数字
{
count++;
i++;
}
sprintf(c, "%d%d", count, cur - '');
stmp += c;
}
s = stmp;
}
return s;
}