class Solution {
//find the regular pattern
public:
string countAndSay(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string ans("1");
int rank = 1;
while (rank < n)
{
stringstream str;
int charCnt = 1;
char foreChar = ans[0];
for (int i = 1; i < ans.size(); ++i)
{
if(ans[i] != foreChar)
{
str<<charCnt<<foreChar;
foreChar = ans[i];
charCnt = 1;
}
else charCnt++;
}
str<<charCnt<<foreChar;
ans = str.str();
rank++;
}
return ans;
}
};
second time
class Solution {
public:
string countAndSay(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string num = "1";
for(int i = 2; i <= n; ++i)
{
int j = 0;
string newNum;
while(j < num.size())
{
int k;
for(k = j+1; k < num.size(); ++k)
if(num[k] != num[j]) break;
newNum.push_back(k-j+'0');
newNum.push_back(num[j]);
j = k;
}
num = newNum;
}
return num;
}
};
本文介绍了一种使用C++编程语言实现数位计数器算法的方法,详细解释了如何通过字符串流、循环和条件判断来构建递进的数位计数器。该算法用于生成特定模式的字符串序列,适用于数据结构、算法和编程教学场景。
497

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



