【C++算法】41模拟_外观数列

文章目录


题目链接:

38. 外观数列


题目描述:


解法

演示:

模拟+双指针:

right++,直到leftright不同才停下来。

count=right-left


C++ 算法代码:

cpp 复制代码
class Solution 
{
    public:
    string countAndSay(int n) 
    {
        string ret = "1"; // 初始化结果字符串为第一个序列 "1"
        for(int i = 1; i < n; i++) // 循环解释 n - 1 次以生成第 n 个序列
        {
            string tmp; // 临时字符串,用于存储当前解释的结果
            int len = ret.size();
            for(int left = 0, right = 0; right < len; ) // 使用双指针 left 和 right 来遍历字符串
            {
                while(right < len && ret[left] == ret[right]) right++; // 移动右指针,直到找到与左指针不同的字符
                tmp += to_string(right - left) + ret[left]; // (right - left)计算相同字符的数量,将数量和对应的字符添加到临时字符串中
                left = right; // 更新左指针到右指针的位置,开始下一轮计数
            }
            ret = tmp; // 更新结果字符串为当前解释的结果
        }
        return ret;
    }
};
相关推荐
精英的英11 分钟前
记一次 Qt5 Language Server 开发
开发语言·vscode·qt
烧酒同学21 分钟前
【C++】记录size of std::vector的巧妙坑
开发语言·c++·图形渲染
周周哈哈哈34 分钟前
线程创建、执行、退出、回收
java·开发语言
gb421528739 分钟前
python中Web应用服务器
开发语言·前端·python
地平线开发者42 分钟前
量化为什么会有损失:从量化误差到精度下降
算法
手写码匠1 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 会话管理与上下文工程实战:让智能体“记住该记住的,忘掉该忘掉的“
人工智能·深度学习·算法·aigc
2401_862880821 小时前
数据结构 --- 栈
c语言·数据结构·算法
萧瑟余晖1 小时前
Java深入解析篇三十六之分布式系统详解
java·开发语言·分布式
致Great1 小时前
Qwen3.8-27B 接入 DSH 全流程实测:写代码、跑长任务,都没问题
算法
ZJU_统一阿萨姆2 小时前
【推理优化进阶】调度器的数学内核:排队论、SLO 与在线决策
开发语言·人工智能·语言模型·系统架构·vllm