计算机低能儿从0刷leetcode | 38.外观数列

题目:38. 外观数列

思路:这一题感觉仅仅难在了阅读理解上,搬了评论里一位朋友的中译中:

  1. 1
  2. 11
  3. 21
  4. 1211
  5. 111221

一步一步来

  1. 给一个数,这个数是1
  2. 描述上一步的数,这个数是 1 即一个1,故写作11
  3. 描述上一步的数,这个数是11即两个1,故写作21
  4. 描述上一步的数,这个数是21即一个2一个1,故写作12-11
  5. 描述上一步的数,这个数是1211即一个1一个2两个1,故写作11-12-21

可见这仅仅是一个简单的递归,只需要把n-1的字符串转换一下就可以得到n的字符串,具体如下:

1、我们遍历n-1的结果str_old,当有连续重复字符时就计数,然后把这个计数count和这个重复字符都加入到新的字符串str_res中;如果只有单个字符不重复,那就把计数count=1和这个字符加入到str_res中即可。

代码:

class Solution {
public:string Rle(int n){if(n==1) return "1";string str_old=Rle(n-1);string str_res="";int i=0,len=str_old.length();while(i<len){int count=1;while(i<len-1&&str_old[i]==str_old[i+1]){count++;i++;}// str_res.push_back((char)count);str_res.push_back('0' + count);  str_res.push_back(str_old[i]);i++;}return str_res;}string countAndSay(int n) {return Rle(n);}
};

注意:这里的要点是代码中注释的那一行,我尝试用push_back 操作将一个字符添加到字符串 str_res 中,而 (char)count 并不是一个可打印的字符(它是整数 count 的字符表示)。当我将 count 强制转换为字符时,它会将 count 的值视为 ASCII 码的字符值,而不是数字 1 的字符,导致结果错误。所以应该使用'0' + count 来将 count 转换为对应的字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iSCSI 和SCSI的概述

一、定义与基础 SCSI 定义&#xff1a;SCSI是一种并行接口标准&#xff0c;用于连接高性能设备&#xff0c;如硬盘驱动器、磁带机和光驱等。基础&#xff1a;SCSI设备通过控制器与计算机系统通信&#xff0c;具有很高的数据传输速率和可靠性。 iSCSI 定义&#xff1a;iSCSI是一…

关于 Oracle Database Express Edition 的功能和安装

Oracle Database Express Edition&#xff0c;简称 Oracle Database XE。是一个免费的版本&#xff0c;主要用于培训和一些功能要求比较简单&#xff0c;又需要免费分发的场景。 看看官方的说明&#xff1a; Whether you are a developer, a DBA, a data scientist, an educat…

谷歌浏览器支持的开发者工具详解

谷歌浏览器&#xff08;Google Chrome&#xff09;是全球最受欢迎的网页浏览器之一&#xff0c;它不仅提供了快速、安全的浏览体验&#xff0c;还为开发者提供了强大的开发者工具。本文将详细介绍如何使用谷歌浏览器的开发者工具&#xff0c;并解答一些常见问题。&#xff08;本…

day57 图论章节刷题Part08(拓扑排序、dijkstra(朴素版))

拓扑排序-117. 软件构建 思路&#xff1a;拓扑排序是经典的图论问题。给出一个有向图&#xff0c;把有向图转成线性的排序就叫拓扑排序&#xff0c;拓扑排序也要检测有向图是否有环&#xff0c;即存在循环依赖的情况&#xff0c;因为这种情况是不能做线性排序的&#xff0c;所…

同局域网ssh连接wsl2

同局域网ssh连接wsl2 简介 如果在Windows使用Ubuntu系统而不想使用虚拟机&#xff0c;wsl是一种不错的选择&#xff0c;提供了一个相对传统虚拟机还不错的功能&#xff0c;但是如果我们想远程这个wsl则是比较麻烦&#xff0c;这里主要介绍一下如何在同一个局域网下使用ssh连接…

Vue.插槽使用指南,实现高复用组件

前言 在现代前端开发中&#xff0c;组件化开发已经成为主流&#xff0c;其中 Vue.js 的插槽&#xff08;slots&#xff09;特性为我们构建灵活、可复用的组件提供了强有力的支持。本文将深入探讨 Vue.js 插槽特性&#xff0c;包括基础插槽、具名插槽、作用域插槽、动态插槽名和…

在C++上实现反射用法

0. 简介 最近看很多端到端的工作&#xff0c;发现大多数都是基于mmdet3d来做的&#xff0c;而这个里面用的比较多的形式就是反射机制&#xff0c;这样其实可以比较好的通过类似plugin的形式完成模型模块的插入。当然我们这里不是来分析python的反射机制的。我们这篇文章主要来…

推荐一款多物理场模拟仿真软件:STAR-CCM+

Siemens STAR-CCM是一款功能强大的计算流体力学(CFD)软件&#xff0c;由西门子公司推出。它集成了现代软件工程技术、先进的连续介质力学数值技术和卓越的设计&#xff0c;为工程师提供了一个全面的多物理场仿真平台。主要特点与优势&#xff1a;多物理场仿真、自动化与高效、高…

无人机飞手考证,地面站培训技术详解

无人机飞手考证及地面站培训技术涉及多个关键方面&#xff0c;以下是对这些方面的详细解析&#xff1a; 一、无人机飞手考证流程与要求 1. 证书类型 民用无人机驾驶员证书&#xff1a;这是国家民航局颁发的无人机操作人员资质证书&#xff0c;分为视距内驾驶员、超视距驾驶员…

SpringMVC全面复习

Javaweb SpringMVC Spring MVC是Spring框架的一个模块&#xff0c;专门用于构建Web应用程序的模型-视图-控制器&#xff08;MVC&#xff09;架构。它通过清晰的分离关注点&#xff0c;简化了Web应用各部分的开发。Spring MVC提供了强大的绑定机制&#xff0c;能够将请求参数绑定…

【真题笔记】21年系统架构设计师案例理论点总结

【真题笔记】21年系统架构设计师案例理论点总结 从机器学习定义的灵活性和学习算法的可扩展性,对解释器+管道过滤器+隐式调用进行对比分析!面向对象方法开发软件,建立对象模型+动态模型+功能模型,三者关联关系!数据架构的设计过程包括:数据定义、数据分布、数据管理,三者…

表格字典处理

正常表格处理字典: <el-table-column prop="exam_status" label="审核状态"> <template #default="scope"> <el-tag v-if="scope.row.exam_status" effect="plain"> {{getDict(dicts.shzt, scope.row.e…

python基础大杂烩

命令提示符程序&#xff0c;输入python&#xff0c;运行python程序 代码通过解释器程序翻译给计算机去执行 命令提示符输入的python本质上就是调用D:/dev/python/python3.12.5/python.exe这个解释器程序 有python程序将输入的代码翻译成二进制的0和1&#xff0c;去向计算机去运…

MathGPT的原理介绍,在中小学数学教学的应用场景,以及代码样例实现

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下MathGPT的原理介绍&#xff0c;在中小学数学教学的应用场景&#xff0c;以及代码样例实现。MathGPT的核心架构是一个精心设计的多层次系统&#xff0c;旨在有效处理复杂的数学问题。其主要组成部分包括 数学知识图谱…

算法演练----24点游戏

给定4个整数&#xff0c;数字范围在1~13之间任意使用-*/&#xff08;&#xff09;&#xff0c;构造出一个表达式&#xff0c;使得最终结果为24&#xff0c; 方法一 算法分析&#xff1a;加括号和取出重复表达式 # 导入精确除法模块&#xff0c;使得在Python2中除法运算的行为更…

SAS 与SATA的概述

Serial Attached SCSI&#xff09;和SATA&#xff08;Serial Advanced Technology Attachment&#xff09;是两种常见的计算机接口标准&#xff0c;用于连接硬盘驱动器&#xff08;HDD&#xff09;和固态驱动器&#xff08;SSD&#xff09;。它们在多个方面存在显著差异&#x…

关于指针p有关的3个值

1&#xff0c;他的类型是int*; 2,*p是解用&#xff0c;指向的是对象 3&#xff0c;&p指向的是p的地址&#xff0c;是指针的地址

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

Linux服务管理-iSCSI

iSCSI 基础知识 iSCSI&#xff08;Internet Small Computer System Interface&#xff09;协议是一种基于IP网络的存储协议&#xff0c;它允许主机&#xff08;计算机或服务器&#xff09;通过TCP/IP网络访问远程存储设备。该协议具有以下主要特点&#xff1a; 灵活性&#xf…

快速掌握——python类 封装[私有属性方法]、继承【python进阶】(内附代码)

1.类的定义 与 实例化对象 在python中使用class关键字创建一个类。 举例子 class Stu(object):id 1001name 张三def __init__(self):passdef fun1(self):pass# 实例化对象 s1 Stu() s2 Stu() print(s1.name) print(s2.name) 第一个方法 __init__是一种特殊的方法&#x…