LeetCode-038-外观数列
外观数列
题目描述:给定一个正整数 n ,输出外观数列的第 n 项。
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。
你可以将其视作是由递归公式定义的数字字符串序列:
- countAndSay(1) = "1"
- countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。
示例说明请见LeetCode官网。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-and-say/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法一:迭代
如果n为1,直接返回“1”;如果n大于1,记录last为上一个字符串序列,初始为“1”,curNum记录当前字符数字,curNumCount记录当前字符数字连续出现的次数,cur为当前需要得到的字符串序列,遍历last,获取每个字符数字连续出现的次数,得到cur,然后将cur赋值给last,继续下一轮处理,最终返回cur。
public class LeetCode_038 {
public static String countAndSay(int n) {
if (n == 1) {
return "1";
}
String last = "1", cur = "";
char curNum;
int curNumCount = 0;
for (int i = 2; i <= n; i++) {
cur = "";
curNum = last.charAt(0);
curNumCount = 1;
for (int x = 1; x < last.length(); x++) {
if (last.charAt(x) == curNum) {
curNumCount++;
} else {
cur += curNumCount + "" + curNum;
curNum = last.charAt(x);
curNumCount = 1;
}
}
cur += curNumCount + "" + curNum;
last = cur;
}
return cur;
}
public static void main(String[] args) {
System.out.println(countAndSay(5));
}
}
【每日寄语】 山有峰顶,海有彼岸。漫漫长途,终有回转。余味苦涩,终有回甘。
LeetCode-038-外观数列的更多相关文章
- Java实现 LeetCode 38 外观数列
38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述.前五项如下: 1 11 21 1211 111221 1 被读作 "one 1" ...
- 【LeetCode】38. 外观数列 Count and Say
作者: 负雪明烛 id: fuxuemingzhu 公众号:负雪明烛 本文关键词:LeetCode,力扣,算法,算法题,外观数列,Count and Say,刷题群 目录 题目描述 题目大意 解题方法 ...
- PAT 1084 外观数列(20)(代码+思路+推荐测试用例)
1084 外观数列(20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 ...
- PAT 1084 外观数列
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120 外观数列是指具有以下特点的整数序列: d, ...
- [LeetCode] 038. Count and Say (Easy) (C++/Python)
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 038. Cou ...
- PAT(B) 1084 外观数列(Java)
题目链接:1084 外观数列 (20 point(s)) 题目描述 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 ...
- PAT Basic 1084 外观数列 (20 分)
外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...
- 1084 外观数列 (20 分)C语言
外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...
- P1084 外观数列
转跳点:
- look and say 外观数列的python实现
#look_and_say 外观数列 如果我们把 1 作为Look-and-say 数列的第一项,那么,它的前几项是这样的: 1, 11, 21, 1211, 111221, 312211, 1311 ...
随机推荐
- dubbo框架的使用方法。。。
图解. 一.dubbo使用须知. 1.所有的service层必须要使用service注解(之前用的spring框架的,现在用dubbo框架所提供的@Service注解) // @Service(tim ...
- CNN-卷积神经网络简单入门(1)
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习 ...
- 洛谷 8 月月赛 & 「PMOI」Round · 04
T1 T166167 「PMOI-4」人赢 题目大意 给一个数列的前两项分别为\(n\)和\(m\) 当\(i\geq3\)时\(a_i = a_{i-1}*a_{i-2}\)的个位 给定\(n\), ...
- new Date时间格式转换方法
平时经常会使用到时间转换,组件库已经有很多组件可以自动生成时间类型了,但是底层的封装方法还是得有 获取当前时间 new Date() 或者自己拥有一个毫秒时间 方法如下 /** * title: 时 ...
- 腾讯QQ是用什么语言写的?
腾讯QQ的开发分客户端软件和服务器端软件两部分. 客户端采用 Microsoft Visual C++开发: 服务器端软件采用Linux gcc开发 : 数据库采用MySql 数据库. 腾讯QQ ...
- rm, git rm, git rm --cached 区别与关系
HEAD, staging area, working copy在上篇<Git命令之回退篇 git revert git reset>已经讲过,不明白请自行传送过去. 1. rm 是仅仅删 ...
- shell编程之免交互 (不要再让你的双手过度劳累了)
shell编程之免交互 1.Here Document免交互 2.Expect免交互 3.免交互磁盘创建 1.Here Document免交互 概述: Here Document使用I/O重定向的方式 ...
- 从上下文中获取所有的原生controller
1 /** 2 * 获取项目所有被注解修饰的url 3 * @param run 4 */ 5 public void getAllUrl(ConfigurableApplicationContext ...
- 基于PXIe接口的CoaXpress高速相机图像采集、回放
PXIe简介 PCI eXtensions for Instrumentation or PXI is a computer-based hardware and software platform ...
- 04 前端之BOM与DOM
目录 前端之BOM与DOM BOM与DOM操作 BOM操作 前端之BOM与DOM BOM与DOM操作 BOM 浏览器对象模型>>>:使用js操作浏览器 DOM 文档对象模型>& ...