leetcode 38 外观数列

一、题目描述

二、解题思路

整体思路

可以采用模拟+双指针的方法来解决这个题目。

具体思路

(1)返回数列的第n项,需要描述n-1次;

(2)定义变量left和right充当双指针,ret[left]就是字符的种类,right-left就是该字符出现的次数,将二者转成字符串,然后加入tmp字符串;

(3)ret字符串遍历完成后,将ret更新为tmp字符串,直到描述完n-1次,返回ret即可。

三、代码实现

cpp 复制代码
class Solution {
public:
    string countAndSay(int n) {
      //模拟+双指针
      string ret="1";
      //描述n-1次
      for(int i=1;i<n;i++){
        string tmp;
        for(int left=0,right=0;right!=ret.size();){
            while(ret[left]==ret[right]) right++;
            tmp+=to_string(right-left)+ret[left];
            left=right;
        }
        ret=tmp;
      }
      return ret;
    }
};
相关推荐
小O的算法实验室2 分钟前
2025年EAAI,累积二项分布概率人工蜂群算法+机械工程设计全局优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
沐雪轻挽萤12 分钟前
4. C++17新特性-内联变量 (Inline Variables)
开发语言·c++
千谦阙听18 分钟前
数据结构最终章:万字详解排序算法!(内部排序)
c语言·数据结构·学习·算法·排序算法
abant219 分钟前
leetcode 76 最小覆盖子串
算法·leetcode·职场和发展
嵌入式的飞鱼20 分钟前
SD NAND的坏块管理算法详解:如何保证数据完整
算法
玖釉-22 分钟前
深入解析 meshoptimizer:基于 meshopt_spatialClusterPoints 的空间聚类与 Mesh Shader 前置优化
c++·windows·图形渲染·聚类
田梓燊23 分钟前
leetcode 240
算法·leetcode·职场和发展
biter down23 分钟前
STL list
开发语言·c++
wenhaoran1128 分钟前
CF1800F Dasha and Nightmares
c++·算法·字符串·codeforces·位运算
极客智造29 分钟前
深入理解 C++ 友元机制:语法、特性与工程实践
c++