您的位置:首页 > 职场人生

36_leetcode_Count and Say

2014-06-19 07:04 441 查看
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.

1:特殊情况, n <= 0; 2: 统计相同字符连续出现的次数,并先保存次数,后保存字符;以这样的形式遍历数组;3:把最后统计的次数和字符保存到字符串中。

string countAndSay(int n)
{
if ( n <= 0)
{
return "";
}

string temp = "1";
string result = "1";

for(int i = 1; i < n; i++)
{
int count = 1;
int number = temp[0] - '0';
int k = 1;
result.clear();
for(; temp[k] != '\0'; k++)
{
if(temp[k] - '0' == number)
{
count++;
}
else
{
result.push_back(count + '0');
result.push_back(number + '0');
count = 1;
number = temp[k] - '0';
}
}

result.push_back(count + '0');
result.push_back(number + '0');
temp = result;
}

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