Count and Say 数数并打印 @LeetCode

LeetCode原题Count and Say Leetcode原题Count and Say count-and-say序列是整数序列,前五个术语如下: 1. 1 2. 11 3. 21 1211 5. 111221 1被读作“1”或11。 11被读作“两个1”或21。 21被读作“一个2,然后一个1”或1211。 给定整数n,其中1≤n≤30,生成count-and-say序列的第n项。 注意:整数序列的每个术语将表示为一个字符串。 立即下载

题目:

数数并打印

题目比较不直观,这里的描述比较好一些  http://www.careercup.com/question?id=4425679

"Count and Say problem" Write a code to do following: 
n String to print 
0 1 
1 1 1    因为前面一行有1个1
2 2 1     因为前面一行有2个1
3 1 2 1 1  因为前面一行有1个2和1个1
... 
Base case: n = 0 print "1" 
for n = 1, look at previous string and write number of times a digit is seen and the digit itself. In this case, digit 1 is seen 1 time in a row... so print "1 1" 
for n = 2, digit 1 is seen two times in a row, so print "2 1" 
for n = 3, digit 2 is seen 1 time and then digit 1 is seen 1 so print "1 2 1 1" 
for n = 4 you will print "1 1 1 2 2 1" 

Consider the numbers as integers for simplicity. e.g. if previous string is "10 1" then the next will be "1 10 1 1" and the next one will be "1 1 1 10 2 1"


思路:

遍历,每次对前面的string进行分析,输出

package Level2;

/**
 * Count and Say
 * 
 *  The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.
Given an integer n, generate the nth sequence.

Note: The sequence of integers will be represented as a string.
 *
 */
public class S38 {

	public static void main(String[] args) {
		System.out.println(countAndSay(6));
	}
	
	public static String countAndSay(int n) {
		
		if(n == 1){
			return "1";
		}
		
		String s = "1";
		StringBuffer ret = new StringBuffer();
		int cnt = 0;
		int round = 0;			// round是迭代多少次
		int i;
		while(++round < n){
			cnt = 1;
			ret.setLength(0);
			for(i=1; i<s.length(); i++){
				if(s.charAt(i) == s.charAt(i-1)){		// 重复的值,继续计数
					cnt++;
				}else{			// 有新的值出现,记录到ret
					ret.append(cnt).append(s.charAt(i-1));
					cnt = 1;		// 重置cnt
				}
			}
			ret.append(cnt).append(s.charAt(i-1));
			s = ret.toString();	// 更新s
		}
		return ret.toString();
	}

}



public class Solution {
    public String countAndSay(int n) {
        String s = "1";
        
        for(int i=1; i<n; i++) {
            int cnt = 1;
            StringBuilder tmp = new StringBuilder();
            for(int j=1; j<s.length(); j++) {
                if(s.charAt(j) == s.charAt(j-1)) {
                    cnt++;
                } else {
                    tmp.append(cnt).append(s.charAt(j-1));
                    cnt = 1;
                }
            }
            tmp.append(cnt).append(s.charAt(s.length()-1));
            s = tmp.toString();
        }
        
        return s;
    }
}

注意到这题如果用 tmp.append(cnt+s.charAt(j-1)); 则会超时



Frida实战:SSL Pinning绕过技术全解析 本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。 阅读详情

相关推荐

docker部署zabbix6.2.7+grafana

docker部署zabbix6.2.7+grafana。

qq_48391148的博客 3654

leetcode 38. Count and Say(计数和读)

leetcode 38

蓝羽飞鸟的博客 751

postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license

最近在工作中使用postgresql 和 timescaledb 的time_bucket_gapfill()函数 报错,让更换license,在网上找了一大圈,没有找到,最后解决了这个问题,这篇文章记录我的解决办法查看timescaledb.license参数命令:show timescaledb.license;修改命令: 结果不行,报错如下:lter system set timescaledb.license=‘timescale’;那只能换包了如果出现上面那种情况,那我们只能先从官网上下载带 '

yang_z_1的博客 3249

数数并说(Count And Say)

报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 1 2. 11 3. 21 4. 1211 5. 111221给定一个正整数 n ,输出报数序列的第 n 项。注意:整数顺序将表示为一个字符串。解法一:乱糟糟版public String countAndSay(int n) { if( n == 1) ...

bai大伯伯的博客 3208

大数据运维面试题及答案

1. 架构组成:- 2 个 NameNode(Active 活跃节点、Standby 备用节点),实时同步元数据(通过 JournalNode 集群,默认 3 个节点,存储 edits 日志,Active 写入、Standby 读取以保持元数据一致);- 容错性强:通过 RDD 的 “ lineage(血缘)” 机制,任务失败时可快速重算,无需从头执行。:集群 “大脑”,管理元数据(文件目录、块位置),实时响应客户端请求,数据存于内存,元数据镜像(fsimage)和编辑日志(edits)持久化到磁盘;

weixin_42795092的博客 905

vcenter server6.0上vmware inventory 、virtualvcenter等服务无法开启

描述:一天,vcenter访问不了,因此Windows远程到vcenter server上。相关服务未开启,开启virtualCenter server服务提示相关依赖服务未开启,于是开启依赖项服务Inventory服务报错。然后打算使用 C:\Program Files\VMware\vCenter Server\bin\servcivce-control来开启vmware服务 1....

Pespi_Co1a的博客 3065

leetCode 38.Count and Say (计数和发言) 解题思路和方法

Count and Say  The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 i

Android进阶 1万+

我用C#实现上位机数据一键导出Excel:从乱码到百万行数据秒级导出的实战技巧

ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("日报表");// 1. 标题(合并单元格)worksheet.Cells["A1"].Value = $"产线日报表 -DateTimeNowToString// 2. 表头和数据(同上)worksheet.Cells["A3"].Value = "时间";// ...省略表头和数据填充// 3. 合计行(公式计算)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 712

leetcode38. Count and Say

count-and-say序列是前五个项的整数序列,如下所示:1 2. 11 3. 21 4. 1211 5. 111221 1 读取为或。读取为或。读取为,然后或。 "one 1"  1111  "two 1s"  2121  "one 2 one 1"  1211给定一个整数n,生成count-and-say序列的第n项。   注意:整数序列的每一项都将以字符串形式表示。例1:输入: 1 输...

任萌新的小生活 331

【深度学习】Progressive Distillation for Fast Sampling of Diffusion Models

这种方法通过迭代地将一个需要较多步骤的模型(称为教师模型)蒸馏成一个需要较少步骤的学生模型,每次迭代都将采样步骤减半,直到达到所需的采样步骤数量。通过渐进式蒸馏,论文将原始需要8192步采样的模型成功蒸馏为只需4步采样就能取得接近的生成质量的新模型,大幅提高了扩散模型的推理效率。这篇论文提出了一种"渐进式蒸馏"(Progressive Distillation)的方法,来大幅降低用于生成对抗网络(GAN)的扩散模型(Diffusion Model)在推理阶段的采样步数,从而提高其推理效率。

q742971636的博客 1785

华为OD机试 - 物流仓储多维度成本利润综合查询系统 - 二维数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某物流企业在全国多个仓库开展仓储业务,需要对不同仓库、不同时段的入库成本、出库收入和库存损耗进行综合统计分析,用于生成 日报、周报和月报。字段说明及取值范围如下:warehouses: int[] 扁平化数组 [w0d0in, w0d0out,

学Java,找哪吒 307

C语言-详细讲解-Count and Say 计数和读法

count-and-say 序列是如下的整数序列:1 读作 "one 1" or 11.11 读作 "two 1s" or 21.21 读作 "one 2, then one 1" or 1211.问第n个是什么程序输入输出格式函数原型程序示例6312211注:不考虑非法输入提示n=1时输出字符串1;n=2时,数上次字符串中的数值个数,因为上次字符串有1个1,所以输出11;n=3时,由于上次字符是11,有2个1,所以输出21;

2402_86955314的博客 943

如何使用 Python 爬虫获取猫眼电影数据:电影评分与评论分析

随着互联网的快速发展,越来越多的人开始使用各种在线平台来了解电影信息,猫眼电影作为一个非常流行的在线电影票务平台,提供了详细的电影评分、评论和票房数据。本篇博客将详细介绍如何使用 Python 爬虫技术获取猫眼电影平台上的电影数据,重点关注电影评分和用户评论的爬取,分析其背后的数据处理和反爬虫技术。如果你对数据分析、电影评论分析等话题感兴趣,可以根据本文的示例进一步深入挖掘更多的数据,为决策提供支持,或为电影产业的相关研究提供有价值的分析依据。有些猫眼电影的页面数据是动态加载的,使用。

2201_76125261的博客 1622

LeetCode——38. Count and Say(C++)

LeetCode——38. Count and Say

begforgood的博客 292

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Leetcode 38. 数数并说

class Solution: def countAndSay(self, n): """ :type n: int :rtype: str """ S="1" for i in range(1,n): #控制外层的迭代次数 S=self.myfun(S) ...

Jason__Liang的博客 1034

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode - 数数并说

GitHub:https://github.com/biezhihua/LeetCode 题目 数数并说序列是一个整数序列,第二项起每一项的值为对前一项的计数,其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 6. 312211 7. 13112221 8. 1113213211 9. ...

biezhihua的专栏 2081

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[LeetCode] Count and Say 数数并说

数数并说序列是一个整数序列,第二项起每一项的值为对前一项的计数,其前五项如下: 1 11 21 1211 111221 1 被读作 “一个一” 即 11。 11 被读作 “两个一” 即 21。 21 被读作 “一个二 和 一个一” 即 1211。 给一个正整数 n ,输出数数并说序列的第 n 项。 注意:该整数序列的每项都输出为字符串。 例 1: 输入: 1 输出: "...

可以叫我啪叽的石头 4789

LeetCode 38. 数数并说

题目描述: 数数并说        数数并说序列是一个整数序列,第二项起每一项的值为对前一项的计数,其前五项如下:1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "一个一" 即 11。11 被读作  "两个一" 即 21。21 被读作  "一个二 和 一个一" 即 1211。给一个正整数 n ,输出数数并说序列的第 n 项。...

江江的博客 2919

LeetCode 初级 - 数数并说

数数并说 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一...

whdAlive 's blog 701

LeetCode ---- 数数并说

报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 11 21 1211 111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二” , “一个一”) , 即 1211...

程序袁小黑 562

leetcode_38. Count and Say 统计数字个数并说出来,组成新的字符串

题目: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is rea

qqzj_bupt的博客 665

leetcode--38. 数数并说

题目:38. 数数并说链接:https://leetcode-cn.com/problems/count-and-say/description/一个序列,第一项是1,我们读作1个1,于是下一项就是11。第二项不是11嘛,读作2个1,于是第三项是21,读作1个2,1个1,于是第四项是1211,这个又读作1个1,1个2,2个1,于是下一项就是111221...略略略...python:def get...

Nero Zhang的博客 1032

【LeetCode】数数并说

题目描述 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1被读作"one 1"("一个一") , 即11。11 被读作"two 1s"("两个一"), 即21。21 被读作"one 2", "one 1"("一个二"...

zero 258

Leetcode #38. Count and Say 数数报数 解题报告

1 解题思想这道题就是按照每一位读一下数字,然手输出 比如123就是1个1,1个2,一个3,输出111213嗯,也就是先输出个数,然后输出元素做法就是扫描,统计了,统计连续相同的数字,毕竟Easy难度~~2 原题The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211,

MebiuW的专栏 1771

LeetCode Count and Say 解题报告

LeetCode Count and Say 解题报告 如何数(shu 三声) 数(shu 四声):1,11,21,1211,111221,312211,13112221,1113213211

算法的天空 1万+

38. Count and Say

/* The count-and-say sequence is the sequence of integers with the first five terms as following: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 is read off as "one 1" or 11. 11 is read off

outlier的博客 406
上一篇: Valid Number 判断一个string是不是有效地数字表达式 @LeetCode
下一篇: Swap Nodes in Pairs 链表两两交换节点@LeetCode
chiiis
博客等级 码龄14年 422粉丝 429原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值