LeetCode之Count and Say

1、题目

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 as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.

Given an integer n, generate the nth term of the count-and-say sequence.

Note: Each term of the sequence of integers will be represented as a string.

Example 1:

Input: 1
Output: "1"

 

Example 2:

Input: 4
Output: "1211"

Exapmle

 

		// 1 1// 2 11// 3 21// 4 1211// 5 111221// 6 312211// 7 13112221
 

 

 


2、代码实现

public class Solution {public String returnLast(String s) {if (s == null || s.length() == 0)return null;String result = "";int length = s.length();if (length == 1) {return "1" + s;}int count = 1;int init = s.charAt(0);for (int i = 1; i < s.length(); i++) {if (s.charAt(i) == s.charAt(i - 1)) {count++;if (i == length - 1) {char ss = s.charAt(i - 1);result = result + count + s.charAt(i - 1);}} else {char ss = s.charAt(i - 1);result = result + count + s.charAt(i - 1);count = 1;if (i == length - 1) {result += ("1" + s.charAt(i));}}}return result;}public String countAndSay(int n) {if (n <= 0)return null;if (n == 1) return "1";else {return returnLast(countAndSay(n - 1));}}
}

 

 


3、总结

1、用递归方法
2、我们递归的时候,先实现默认包含字符串,如何得到下一个字符串,这也是我们需要把每次得到的结果递归,所以,我们先写个函数简单实现从这个字符串如果得到下一个字符串
3、我们在写递归公共函数的实现时候,要注意,末尾和数字前一位是否相同和不同的情况。

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

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

相关文章

《SAP入门经典(第4版•修订版)》——2.5 4种视角相互结合

本节书摘来自异步社区《SAP入门经典&#xff08;第4版•修订版&#xff09;》一书中的第2章&#xff0c;第2.5节&#xff0c;作者&#xff1a;【美】George Anderson著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.5 4种视角相互结合 SAP入门经典&#x…

dotNet Core使用SignalR实现websocket

前言:最近有一个公司项目做一个排队叫号系统&#xff0c;系统功能不复杂&#xff0c;所以后端就我一人&#xff0c;难点在于消息推送到安卓屏上&#xff0c;最近有点时间&#xff0c;把我工作中使用的技术分享出来&#xff01;整个技术架构:前端使用vue uniapp&#xff0c;后端…

JPA和hibernate的关系

实际上&#xff0c;JPA的标准的定制是hibernate作者参与定制的&#xff0c;所以JPA是hibernate的一个总成&#xff0c;可以这么理解转载于:https://www.cnblogs.com/cyh2009/p/4709465.html

nagios监控mysql(check_mysql)及内存使用率(check_mem)

一、监控本地&#xff08;localhost&#xff09;内存1、上传监控脚本 check_mem 到/usr/local/nagios/libexec# chown -R nagios.nagios check_mem # chmod x check_mem2、修改commands配置# vim /usr/local/nagios/etc/objects/commands.cfg define command{command_name …

Android之jni编译报错comparsion between signed and unsigned integer expressions解决办法

1、问题 jni编译报错comparsion between signed and unsigned integer expressions 2、原因 在for循环里面&#xff0c;不能用无符号32整形数据作为判断条件 2、解决办法 先把无符号32整形数据强转为整型数据&#xff0c;然后再去作为条件

《手机测试Robotium实战教程》——导读

本节书摘来自异步社区《手机测试Robotium实战教程》一书中的导读&#xff0c;作者 杨志伟&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录前 言第1章 自动化测试简介 1.1节何为自动化测试1.2节自动化测试和手动测试的对比1.3节移动端自动化测试工具的选…

linux内核的冒险md来源释义# 14raid5非条块读

linux内核的冒险md来源释义&#xff03; 14raid5非条块读转载请注明出处&#xff1a;http://blog.csdn.net/liumangxiong假设是非条块内读。那么就至少涉及到两个条块的读&#xff0c;这就须要分别从这两个条块内读出数据。然后再凑成整个结果返回给上层。接下来我们将看到怎样…

为record类型自定义Equals方法

前言record类型&#xff0c;这是一种新引用类型&#xff0c;而不是类或结构。record与类不同&#xff0c;区别在于record类型使用基于值的相等性。例如&#xff1a;public record DemoRecord(int id);public class DemoClass {public DemoClass(int id){this.id id;}public in…

解决IDEA修改已有项目为maven项目时目录结构被改变的问题

Idea可以在项目根目录上右键选择“添加框架支持”&#xff0c;选择maven&#xff0c;为项目添加Maven支持。 但这样会导致原有项目的目录结构被破坏。 更好的方法是在根目录添加pom.xml文件 在<build>标签内添加 <sourceDirectory>标签&#xff0c;并填入源码根目…

C语言之获取32字节随机数的字符串

1、问题 获取32字节随机数的字符串 2、代码实现 #include <stdio.h> #include <time.h> #include <stdlib.h>#define SIZE 32void get_rand(char *p, int length) { char value[10] "0123456789";srand(time(NULL));for (int i 0; i < leng…

排序——选择排序

选择排序 作者&#xff1a;上品物语 知识点&#xff1a; 原理示意图算法特点复杂度1.1 原理 首先&#xff0c;找到数组中最小的那个元素&#xff0c;其次&#xff0c;将它和数组的第一个元素交换位置&#xff08;如果第一个元素就是最小元素&#xff0c;那么它就和自己交换&…

《Java线程与并发编程实践》—— 2.3 谨防活跃性问题

本节书摘来异步社区《Java线程与并发编程实践》一书中的第2章&#xff0c;第2.3节&#xff0c;作者&#xff1a; 【美】Jeff Friesen&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3 谨防活跃性问题 活跃性这个词代表着某件正确的事情最终会发生。活跃…

.Net/C#分库分表高性能O(1)瀑布流分页

框架介绍依照惯例首先介绍本期主角:ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案&#xff0c;具有零依赖、零学习成本、零业务代码入侵dotnet下唯一一款全自动分表,多字段分表框架,拥有高性能,零依赖、零学习成本、零业务代码入侵,并且支持读写分离…

centos静默安装oracle关于报错UnsatisfiedLinkError exception loading native library:njni10

静默安装oracle时&#xff0c;日志文件中打印出如下语句 提示Oracle NetConfiguration Assistant failed&#xff0c;原因是找不到libaio.so.1 这是缺少依赖 执行指令 yum -y install libaio* libaio-devel* 删除home文件夹&#xff0c;再次执行 ./runInstaller -silent…

Ant—使用Ant构建一个简单的Java工程(两)

博客《Ant—使用Ant构建一个简单的Java项目&#xff08;一&#xff09;》演示了使用Ant工具构建简单的Java项目&#xff0c;接着这个样例来进一步学习Ant&#xff1a;上面样例须要运行多条ant命令才干运行Test类中的main函数&#xff0c;能不能简化须要运行命令呢&#xff1f;答…

C++之函数指针实现函数回调

1、问题 C++很多地方需要函数指针回调,但是我理解还是不够深刻,今天再写了测试例子,方便后面更深入理解和记忆。 2、代码实现 A.h 文件实现 // // A.h // TestC++ // // Created by 1111 on 17/8/17. // Copyright © 2017年 sangfor. All rights reserved. //#…

JMS的样例

1、JMS是一个由AS提供的Message服务。它能接受消息产生者(Message Provider)所发出的消息&#xff0c;并把消息转发给消息消费者(Message Consumer)。2、JMS提供2种类型的消息服务&#xff1a;(1)Queue&#xff0c;即点对点&#xff0c;每一个消息仅仅转发给一个消息消费者使用…

《面向对象的思考过程(原书第4版)》一1.11 组合

本节书摘来自华章出版社《面向对象的思考过程&#xff08;原书第4版&#xff09;》一书中的第1章&#xff0c;第1.11节&#xff0c;&#xff3b;美&#xff3d; 马特魏斯费尔德&#xff08;Matt Weisfeld&#xff09; 著黄博文 译更多章节内容可以访问云栖社区“华章计算机”…

Hadoop 新增删除节点

1 新增Data节点 1.1 修改/etc/hosts&#xff0c;增加datanode的ip 1.2 在新增加的节点启动服务 hadoop-daemon.sh start datanode yarn-daemon.sh start nodemanager 1.3 均衡block start-balancer.sh 1&#xff09;如果不balance&#xff0c;那么cluster会把新的数据都存放在…

Java Thread Status(转)

public static enum Thread.State extends Enum<Thread.State>线程状态。线程可以处于下列状态之一&#xff1a; 1.NEW 至今尚未启动的线程的状态。 2.RUNNABLE 可运行线程的线程状态。 处于可运行状态的某一线程正在 Java 虚拟机中运行&#xff0c;但它可能正在…