1. 题目解析
题目链接:38. 外观数列
这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。
2.算法原理
- 所谓“外观数列”,其实只是依次统计字符串中连续且相同的字符的个数。依照题意,依次模拟即 可。
- 用双指针来模拟依次统计字符串中连续且相同的字符的个数。
3.代码编写
class Solution
{
public:
string countAndSay(int n)
{
string ret = "1";
for(int i = 1; i < n; i++)
{
string tmp;
int len = ret.size();
for(int l = 0, r = 0; r < len;)
{
while(r < len && ret[l] == ret[r]) r++;
tmp += to_string(r - l) + ret[l];
l = r;
}
ret = tmp;
}
return ret;
}
};
The Last
嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。
觉得有点收获的话,不妨给我点个赞吧!
如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~