LeetCode之Count and Say

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

481

相关文章
LeetCode 357. Count Numbers with Unique Digits
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。
93 0
LeetCode 357. Count Numbers with Unique Digits
|
存储 Python
LeetCode 315. Count of Smaller Numbers After Self
给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。
101 0
LeetCode 315. Count of Smaller Numbers After Self
LeetCode 222. Count Complete Tree Nodes
给出一个完全二叉树,求出该树的节点个数。
95 0
LeetCode 222. Count Complete Tree Nodes
|
测试技术
LeetCode 204. Count Primes
统计所有小于非负整数 n 的质数的数量。
52 0
LeetCode 204. Count Primes
LeetCode contest 200 5475. 统计好三元组 Count Good Triplets
LeetCode contest 200 5475. 统计好三元组 Count Good Triplets
LeetCode 5340. 统计有序矩阵中的负数 Count Negative Numbers in a Sorted Matrix
LeetCode 5340. 统计有序矩阵中的负数 Count Negative Numbers in a Sorted Matrix
LeetCode 204 Count Primes(质数计数)(*)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50617645 翻译 计算小于一个非负整数n的质数的个数。
845 0
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
5月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
130 2