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;
    }
};
相关推荐
max5006009 小时前
YOLOv8主干网络替换为UniConvNet的详细指南
运维·开发语言·人工智能·python·算法·yolo
GalileoL9 小时前
LeetCode 1041.困于环中的机器人
算法
怀旧,10 小时前
【C++】16. set和map
开发语言·c++
小猫挖掘机(绝版)10 小时前
Ubuntu20.04安装ROS Noetic
linux·c++·ubuntu·无人机
图灵信徒10 小时前
ICPC Central Russia Regional Contest, 2024
c++·python·codeforces·算法竞赛
ZZHow102410 小时前
算法模板(Java版)_字符串、并查集和堆
java·算法
CoovallyAIHub11 小时前
3D目标跟踪重磅突破!TrackAny3D实现「类别无关」统一建模,多项SOTA达成!
深度学习·算法·计算机视觉
快去睡觉~11 小时前
力扣654:最大二叉树
算法·leetcode·职场和发展