首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >模拟-38.外观数列-力扣(LeetCode)

模拟-38.外观数列-力扣(LeetCode)

作者头像
白天的黑夜
发布2025-10-22 17:14:55
发布2025-10-22 17:14:55
820
举报

一、题目解析

1、替换的方法:“33”用“23”替换,即找到相同的数,前一位为相同数的数量,后一位为相同的数

2、给定n,需要返回外观数列的第n个元素

二、算法原理

由于需要统计相同元素的数目,所以可以使用双指针来统计数目

解法:模拟+双指针

借助双指针统计数目后,按照规则加入到新的字符串中,并以新的字符串继续进行转换。对于本题right可以越界原因:1、双指针只用于统计数量;2、right指针不会访问ret字符串

三、代码示例

代码语言:javascript
复制
class Solution {
public:
    string countAndSay(int n)
    {
        string ret = "1";
        if(n == 1) return "1";
        n -= 1;
        while(n--)
        {
            string s;
            for(int left = 0,right = 0;right<=ret.size();right++)
            {
                if(ret[left] != ret[right])
                {
                    int count = right - left;
                    s += to_string(count);
                    s += ret[left];
                    left = right;
                }
            }
            ret = s;
        } 
        return ret;
    }
};

to_string作用:将整形转化为string

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目解析
    • 1、替换的方法:“33”用“23”替换,即找到相同的数,前一位为相同数的数量,后一位为相同的数
    • 2、给定n,需要返回外观数列的第n个元素
  • 二、算法原理
    • 由于需要统计相同元素的数目,所以可以使用双指针来统计数目
    • 解法:模拟+双指针
      • 借助双指针统计数目后,按照规则加入到新的字符串中,并以新的字符串继续进行转换。对于本题right可以越界原因:1、双指针只用于统计数量;2、right指针不会访问ret字符串
  • 三、代码示例
    • to_string作用:将整形转化为string
  • 看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档