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、我们在写递归公共函数的实现时候,要注意,末尾和数字前一位是否相同和不同的情况。
 
(0)

相关推荐

  • 详解最长公共子序列问题,秒杀三道动态规划题目

    作者:labuladong 公众号:labuladong 读完本文,可以去力扣解决如下题目: 1143.最长公共子序列(Medium) 583. 两个字符串的删除操作(Medium) 712.两个字符 ...

  • ​LeetCode刷题实战38: 外观数列

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战260:只出现一次的数字 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战258:各位相加

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 老外说count to ten什么意思?让你数到十?搞错就尴尬啦!

    我们都知道 count/kaʊnt/作动词表示: (按顺序)数,数数:计算:计数 英文解释: to say numbers one after the other in order, or to ca ...

  • 二阴后阳源码:Q:=COUNT(V<RE...

    二阴后阳源码: Q:=COUNT(V<REF(V,1) AND C<REF(C,1) AND C<O,2)=2; R:=REF(Q,1) AND V/REF(V,1)>2 AN ...

  • ​LeetCode刷题实战257:二叉树的所有路径

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战256:粉刷房子

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • COUNT函数家族

    前言 一提起COUNT,大家都知道是统计函数,其实它还有几个兄弟,本领各不相同.分别是COUNTA,COUNTBLANK,COUNTIF,COUNTIFS. 下面就分别介绍一下: 假设数据如下: 1C ...

  • ​LeetCode刷题实战262:行程和用户

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • leetcode刷题笔记-234. 回文链表(java实现)

    题目描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 来源:力扣(LeetCo ...