string countAndSay(int n)
{
string res="1";
while(--n)
{
int count=1;
string temp="";
for(int i=1;i<res.size();i++)
{
if(res[i]==res[i-1])
{
count++;
}
else
{
temp+=to_string(count)+res[i-1];
count=1;
}
}
temp+=to_string(count)+res.back();
res=temp;
}
return res;
}
想法:处理末尾前的数字从第一个位置开始判断,和后边的数字一样count++,否则就加入字符串temp,直到末尾数字的判断,最后返回res。
本文介绍了一个使用C++解决Count and Say问题的方法。通过迭代处理字符串,算法能够生成任意阶的序列。该方法首先定义初始字符串为“1”,然后通过循环减少n的值并构造新的字符串,直至达到目标阶数。

718

被折叠的 条评论
为什么被折叠?



