Leetcode 38.外观数列 (每日一题 20210702)
给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = "1"
countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。
前五项如下:1. 1
2. 11
3. 21
4. 1211
5. 111221
第一项是数字 1
描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 "11"
描述前一项,这个数是 11 即 “ 二 个 1 ” ,记作 "21"
描述前一项,这个数是 21 即 “ 一 个 2 + 一 个 1 ” ,记作 "1211"
描述前一项,这个数是 1211 即 “ 一 个 1 + 一 个 2 + 二 个 1 ” ,记作 "111221"
要 描述 一个数字字符串,首先要将字符串分割为 最小 数量的组,每个组都由连续的最多 相同字符 组成。然后对于每个组,先描述字符的数量,然后描述字符,形成一个描述组。要将描述转换为数字字符串,先将每组中的字符数量用数字替换,再将所有描述组连接起来。例如,数字字符串 "3322251" 的描述如下图:示例 1:输入:n = 1
输出:"1"
解释:这是一个基本样例。
示例 2:输入:n = 4
输出:"1211"
解释:
countAndSay(1) = "1"
countAndSay(2) = 读 "1" = 一 个 1 = "11"
countAndSay(3) = 读 "11" = 二 个 1 = "21"
countAndSay(4) = 读 "21" = 一 个 2 + 一 个 1 = "12" + "11" = "1211"链接:https://leetcode-cn.com/problems/count-and-sayclass Solution:def countAndSay(self, n: int) -> str:pre, cur = "", "1"for _ in range(1,n):pre = curcur = ''start ,end = 0, 0while end < len(pre):while end < len(pre) and pre[start] == pre[end]:end += 1cur += str(end - start) + pre[start]start = endreturn cur
Leetcode 38.外观数列 (每日一题 20210702)相关推荐
- LeetCode 38外观数列39组合总和
维护公众号:bigsai 回复bigsai分享一些学习资源! 本周上篇 LeetCode 36有效的数独&37解数独(八皇后问题) 外观数列 给定一个正整数 n(1 ≤ n ≤ 30),输出外 ...
- leetcode —— 38. 外观数列
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1->1 2->11 3->21 4->1211 5->111221 2中的 ...
- leetcode 38.外观数列
题目 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1 11 21 1211 111221 1 被读作 "one 1" (" ...
- leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下
1.思路: 从1开始遍历,求出后面每一个转化后的数.依次求下一个. string countAndSay(int n) {string res = "1";for (int i = ...
- LeetCode 38外观数列
力扣 思路:打表 由于n<=30,用数组记录每个数 class Solution { public:string countAndSay(int n) {vector<string> ...
- 力扣刷题之路 38. 外观数列 Python解
给定一个正整数 n ,输出外观数列的第 n 项. 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述. 你可以将其视作是由递归公式定义的数字字符串序列: countAndS ...
- 38外观数列(循环遍历)
1.题目描述 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. ...
- Leetcode 75. 颜色分类 (每日一题 20210817)
给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色.示例 ...
- LeetCode 1134.阿姆斯特朗数 每日一题
问题描述 给你一个整数 n ,让你来判定他是否是 阿姆斯特朗数,是则返回 true,不是则返回 false. 假设存在一个 k 位数 n ,其每一位上的数字的 k 次幂的总和也是 n ,那么这个数是阿 ...
最新文章
- Google、Intel、Uber等巨头如何布局AI?听听他们自己人怎么说
- C语言易错题集 第三部
- AndroidLinker与SO加壳技术之上篇
- 谷歌浏览器 自动保存数据后input的黄色背景 解决办法
- 动手学习_动手选择值
- 文档容器iOS网络编程-iCloud文档存储编程实例
- java中super关键字的用法
- JDK源码(21)-Unsafe
- android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
- 一行 Python 代码能实现这么多丧心病狂的功能?
- pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释
- 第2章:Maven的安装/2.1 Window下的安装
- window 右击菜单启动 nodejs app
- 《Spring5官方文档》新功能(4,3)
- 修改浏览器的默认最小字号限制(以chrome为例)
- centos分区方案
- 计算机桌面全部内容自定义,电脑win10如何恢复自定义桌面图标排列的方法
- 电脑取消撤销快捷键是什么_撤销快捷键ctrl加什么
- 同频切换的事件_目前现网中,LTE同频切换主要是通过A5事件进行触发
- php ci框架后台管理,ci: 羽翼后台管理平台是一个简单的博客系统,后端基于CodeIgniter,前端基于Semantic UI 2.2.10...
热门文章
- fastjson序列化原理详解
- bzoj 1901: Zju2112 Dynamic Rankings
- 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法...
- 16、ASP.NET MVC入门到精通——MVC过滤器
- shell中的PS命令的含义
- 云级Key-value数据库大比较
- 图书大甩卖(操作系统、C语言、Linux) 已成交
- java 时间生成字符串_java随机生成时间字符串的方法
- splice方法_[7000字]JavaScript数组所有方法基础总结
- python批量新建文件夹_python批量创建指定名称的文件夹