给定一个正整数 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)相关推荐

  1. LeetCode 38外观数列39组合总和

    维护公众号:bigsai 回复bigsai分享一些学习资源! 本周上篇 LeetCode 36有效的数独&37解数独(八皇后问题) 外观数列 给定一个正整数 n(1 ≤ n ≤ 30),输出外 ...

  2. leetcode —— 38. 外观数列

    「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1->1 2->11 3->21 4->1211 5->111221 2中的 ...

  3. leetcode 38.外观数列

    题目 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1 11 21 1211 111221 1 被读作 "one 1" (" ...

  4. leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下

    1.思路: 从1开始遍历,求出后面每一个转化后的数.依次求下一个. string countAndSay(int n) {string res = "1";for (int i = ...

  5. LeetCode 38外观数列

    力扣 思路:打表 由于n<=30,用数组记录每个数 class Solution { public:string countAndSay(int n) {vector<string> ...

  6. 力扣刷题之路 38. 外观数列 Python解

    给定一个正整数 n ,输出外观数列的第 n 项. 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述. 你可以将其视作是由递归公式定义的数字字符串序列: countAndS ...

  7. 38外观数列(循环遍历)

    1.题目描述 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1.     1 2.     11 3.     21 4.     1211 5.   ...

  8. Leetcode 75. 颜色分类 (每日一题 20210817)

    给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色.示例 ...

  9. LeetCode 1134.阿姆斯特朗数 每日一题

    问题描述 给你一个整数 n ,让你来判定他是否是 阿姆斯特朗数,是则返回 true,不是则返回 false. 假设存在一个 k 位数 n ,其每一位上的数字的 k 次幂的总和也是 n ,那么这个数是阿 ...

最新文章

  1. Google、Intel、Uber等巨头如何布局AI?听听他们自己人怎么说
  2. C语言易错题集 第三部
  3. AndroidLinker与SO加壳技术之上篇
  4. 谷歌浏览器 自动保存数据后input的黄色背景 解决办法
  5. 动手学习_动手选择值
  6. 文档容器iOS网络编程-iCloud文档存储编程实例
  7. java中super关键字的用法
  8. JDK源码(21)-Unsafe
  9. android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
  10. 一行 Python 代码能实现这么多丧心病狂的功能?
  11. pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释
  12. 第2章:Maven的安装/2.1 Window下的安装
  13. window 右击菜单启动 nodejs app
  14. 《Spring5官方文档》新功能(4,3)
  15. 修改浏览器的默认最小字号限制(以chrome为例)
  16. centos分区方案
  17. 计算机桌面全部内容自定义,电脑win10如何恢复自定义桌面图标排列的方法
  18. 电脑取消撤销快捷键是什么_撤销快捷键ctrl加什么
  19. 同频切换的事件_目前现网中,LTE同频切换主要是通过A5事件进行触发
  20. php ci框架后台管理,ci: 羽翼后台管理平台是一个简单的博客系统,后端基于CodeIgniter,前端基于Semantic UI 2.2.10...

热门文章

  1. fastjson序列化原理详解
  2. bzoj 1901: Zju2112 Dynamic Rankings
  3. 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法...
  4. 16、ASP.NET MVC入门到精通——MVC过滤器
  5. shell中的PS命令的含义
  6. 云级Key-value数据库大比较
  7. 图书大甩卖(操作系统、C语言、Linux) 已成交
  8. java 时间生成字符串_java随机生成时间字符串的方法
  9. splice方法_[7000字]JavaScript数组所有方法基础总结
  10. python批量新建文件夹_python批量创建指定名称的文件夹