作者:伤心脑残猪_940 | 来源:互联网 | 2023-06-06 21:27
题目:Thecount-and-saysequenceisthesequenceofintegersbeginningasfollows:1,11,21,1211,111221,.
题目:
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.
代码:
class Solution {
public:
string countAndSay(int n) {
string tmp1 = "1";
string tmp2 = "";
for ( size_t i = 1; i i )
{
int digit_count = 1;
for ( size_t j = 1; j j )
{
if ( tmp1[j]==tmp1[j-1] )
{
++digit_count;
}
else
{
tmp2 += digit_count+‘0‘;
tmp2 += tmp1[j-1];
digit_count = 1;
}
}
tmp2 += digit_count+‘0‘;
tmp2 += tmp1[tmp1.size()-1];
tmp1 = tmp2;
tmp2 = "";
}
return tmp1;
}
};
tips:
这个题意不太好理解。
简单说就是:第n组字符串是第n-1组字符串的读法;读法的准则就是‘连续出现个数+数字’。
其余的就是处理一下边界case。
【Count and Say】cpp