当前位置: 首页 > news >正文

网站做板块地图的办法/软件开发app制作

网站做板块地图的办法,软件开发app制作,做相亲网站,深信服网络架构大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:外观数列 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C) 兄弟们共勉 !!! 每篇前言 博客主页:小卡…

大家好,我是小卡皮巴拉

文章目录

目录

力扣题目:外观数列

题目描述

解题思路

问题理解

算法选择

具体思路

解题要点

完整代码(C++)

兄弟们共勉 !!! 


每篇前言

博客主页:小卡皮巴拉

咱的口号:🌹小比特,大梦想🌹

作者请求:由于博主水平有限,难免会有错误和不准之处,我也非常渴望知道这些错误,恳请大佬们批评斧正。

力扣题目:外观数列

原题链接:38. 外观数列 - 力扣(LeetCode)

题目描述

「外观数列」是一个数位字符串序列,由递归公式定义:

  • countAndSay(1) = "1"
  • countAndSay(n) 是 countAndSay(n-1) 的行程长度编码。

行程长度编码(RLE)是一种字符串压缩方法,其工作原理是通过将连续相同字符(重复两次或更多次)替换为字符重复次数(运行长度)和字符的串联。例如,要压缩字符串 "3322251" ,我们将 "33" 用 "23" 替换,将 "222" 用 "32" 替换,将 "5" 用 "15" 替换并将 "1" 用 "11" 替换。因此压缩后字符串变为 "23321511"

给定一个整数 n ,返回 外观数列 的第 n 个元素。

示例 1:

输入:n = 4

输出:"1211"

解释:

countAndSay(1) = "1"

countAndSay(2) = "1" 的行程长度编码 = "11"

countAndSay(3) = "11" 的行程长度编码 = "21"

countAndSay(4) = "21" 的行程长度编码 = "1211"

示例 2:

输入:n = 1

输出:"1"

解释:

这是基本情况。

解题思路

问题理解

本题要求根据外观数列的递归定义,求出外观数列的第 n 个元素。外观数列的递归定义为:countAndSay(1) = "1"countAndSay(n) 是 countAndSay(n - 1) 的行程长度编码。行程长度编码是将连续相同字符替换为字符重复次数和字符的串联。

算法选择

采用模拟和双指针的方法,从外观数列的第一个元素 "1" 开始,依次对前一个结果进行行程长度编码,迭代 n - 1 次,最终得到第 n 个元素。

具体思路

  1. 初始化:将外观数列的第一个元素初始化为 "1",存储在字符串 ret 中。

  2. 迭代生成:进行 n - 1 次迭代,每次迭代对当前的 ret 进行行程长度编码。

    • 行程长度编码:使用双指针 left 和 right 遍历当前字符串 retleft 指针指向当前处理的字符,right 指针用于找到连续相同字符的末尾。当 right 指向的字符与 left 指向的字符相同时,right 指针右移。当 right 指向的字符与 left 指向的字符不同时,说明找到了一组连续相同的字符,其数量为 right - left。将该数量转换为字符串,并与该字符拼接,添加到临时字符串 tmp 中。然后更新 left 指针到 right 指针的位置,继续处理下一组相同字符。

    • 更新结果:一次行程长度编码完成后,将临时字符串 tmp 的结果更新到 ret 中,为下一次迭代做准备。

  3. 返回结果:经过 n - 1 次迭代后,ret 即为外观数列的第 n 个元素,返回 ret

解题要点

  1. 迭代过程:明确需要进行 n - 1 次迭代,每次迭代都对前一个结果进行行程长度编码。

  2. 双指针使用:使用双指针 left 和 right 来遍历字符串,方便统计连续相同字符的数量。

  3. 行程长度编码:正确将连续相同字符的数量和字符进行拼接,生成行程长度编码的结果。

完整代码(C++)

class Solution {
public:string countAndSay(int n) {// 初始化外观数列的第一个元素为 "1"string ret = "1";// 进行 n - 1 次迭代,因为已经有了初始的 "1",还需要进行 n - 1 次行程长度编码for(int i = 1; i < n; i++){// 临时字符串,用于存储每次迭代后的行程长度编码结果string tmp;// 获取当前字符串的长度int len = ret.size();// 使用双指针 left 和 right 来遍历字符串for(int left = 0, right = 0; right < len;){// 当 right 没有越界且当前字符和 left 指向的字符相同时,right 指针右移while(right < len && ret[left] == ret[right]) right++;// 将相同字符的数量(right - left)转换为字符串,并与该字符拼接,添加到临时字符串 tmp 中tmp += to_string(right - left) + ret[left];// 更新 left 指针到 right 指针的位置,继续下一组相同字符的处理left = right;}// 将临时字符串 tmp 的结果更新到 ret 中,为下一次迭代做准备ret = tmp;}// 返回外观数列的第 n 个元素return ret;}
};

兄弟们共勉 !!! 

码字不易,求个三连

抱拳了兄弟们!

http://www.cadmedia.cn/news/489.html

相关文章:

  • iis wordpress 404/长沙网站推广排名优化
  • 广告设计公司品牌设计/windows优化大师的功能
  • asp个人网站模板下载/关键词优化策略
  • 网站建设 工具/产品推广网站
  • 淘宝网站建设的主要工作/seo排名外包
  • 传奇广告网站怎么做/运营网站
  • 2345网址大全手机版/平台关键词排名优化
  • 建筑模板厂家联系方式/沈阳seo优化
  • 杭州网站公安备案/北京网站推广公司
  • 手机定位网站源码/百度推广是什么意思
  • 制作公司简介宣传片/嘉兴seo网络推广
  • 网站开发源代码mvc/西安seo优化工作室
  • 重庆慕尚网站建设/百度知道网页版登录入口
  • 网站建设公司用5g/百度pc版网页
  • 如何做局域网网站/软文营销的概念
  • 绍兴网站关键词优化/如何开发一个软件平台
  • SharePoint做网站好吗/推广游戏怎么拉人最快
  • wordpress 导航栏在哪/seo公司彼亿营销
  • 平乡县网站建设平台/最新新闻热点话题
  • 无锡网站制作启航/淘宝直通车推广怎么收费
  • 保险官方网站/微信推广平台怎么做
  • 有没人做阿里巴巴网站维护的/百度seo推广价格
  • 营销网站建设/百度seo关键词排名
  • wordpress分页功能/安卓系统优化软件
  • 做网站建站/全球搜索引擎市场份额
  • 网站做任务赚钱/网络广告推广平台
  • 做羊水亲子鉴定网站/佛山seo整站优化
  • 惠州网络问政平台/seo西安
  • 荆门哪里有专门做企业网站的/网络营销有哪些例子
  • json做网站的数据库/搜索关键词排名优化服务