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;
    }
};
相关推荐
syker6 分钟前
AIFerric深度学习框架:自研全栈AI基础设施的技术全景
开发语言·c++
CS创新实验室23 分钟前
从盘边到芯端——硬盘接口七十年变迁史
算法·磁盘调度
xvhao201343 分钟前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
MATLAB代码顾问1 小时前
多种群协同进化算法(MPCE)求解大规模作业车间调度问题——附MATLAB代码
开发语言·算法·matlab
FQNmxDG4S1 小时前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法
We་ct1 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·leetcode·typescript·动态规划
AI科技星1 小时前
精细结构常数α作为SI 7大基本量纲统一耦合常数的量子几何涌现理论
算法·机器学习·数学建模·数据挖掘·量子计算
笑鸿的学习笔记2 小时前
qt-C++语法笔记之Qt Graphics View 框架中的类型辨析完全指南
c++·笔记·qt
山居秋暝LS2 小时前
安装C++版opencv和opencv_contrib
开发语言·c++·opencv
txzrxz2 小时前
动态规划——背包问题
算法·动态规划