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

原创 2015年07月09日 20:40:16
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.


思路:题意实在太难理解了,尤其是英文又不好,只能参看下别人的资料,理解下规则。终于理解,题意是n=1时输出字符串1;n=2时,数上次字符串中的数值个数,因为上次字符串有1个1,所以输出11;n=3时,由于上次字符是11,有2个1,所以输出21;n=4时,由于上次字符串是21,有1个2和1个1,所以输出1211。依次类推,写个countAndSay(n)函数返回字符串。

题意理解之后就好办了,是典型的递归问题,其代码很简单,如下:

public class Solution {
    public String countAndSay(int n) {
        if(n == 1){
            return "1";
        }
        //递归调用,然后对字符串处理
        String str = countAndSay(n-1) + "*";//为了str末尾的标记,方便循环读数
        char[] c = str.toCharArray();
        int count = 1;
        String s = "";
        for(int i = 0; i < c.length - 1;i++){
        	if(c[i] == c[i+1]){
        		count++;//计数增加
        	}else{
        		s = s + count + c[i];//上面的*标记这里方便统一处理
        		count = 1;//初始化
        	}
        }
        return s;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode --- 38. Count and Say

题目链接:Count and Say The count-and-say sequence is the sequence of integers beginning as follows: ...
  • makuiyu
  • makuiyu
  • 2015年02月05日 23:33
  • 2182

【LeetCode-面试算法经典-Java实现】【038-Count and Say(计数和表述)】

【038-Count and Say(计数和表述)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  The count-and-say sequence is the se...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月28日 05:59
  • 2299

Count and Say

The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 11122...
  • shiquxinkong
  • shiquxinkong
  • 2014年01月23日 15:44
  • 684

Count and Say

题目 The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 2...
  • u010378705
  • u010378705
  • 2014年06月12日 22:47
  • 467

Count and Say @python 题解

Count and Say python @题解
  • xiaolewennofollow
  • xiaolewennofollow
  • 2015年04月23日 10:03
  • 1138

LeetCode Count and Say 解题报告

LeetCode Count and Say 解题报告 如何数(shu 三声) 数(shu 四声):1,11,21,1211,111221,312211,13112221,1113213211...
  • worldwindjp
  • worldwindjp
  • 2014年12月05日 15:09
  • 9661

LeetCode(38) Count and Say

这道题看起来比较难,是一道平常没有接触过的题目,但是越是这种题目,越到对问题进行分析,因为这种问题一般都会有规律可行。再来说这个题目,意思是教你数(shu三声)数(shu四声)。 (1)这个数列的第...
  • qq_26849233
  • qq_26849233
  • 2017年07月19日 15:26
  • 97

Count and Say -- LeetCode

原题链接: http://oj.leetcode.com/problems/count-and-say/  这道题属于字符串操作的类型,算法上提高空间不大,只能是对于某一个数的串,读过去然后得到计数并...
  • linhuanmars
  • linhuanmars
  • 2014年03月07日 04:43
  • 8347

LeetCode38 Count and Say(C语言解决)

题目要求: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211...
  • sinat_32547403
  • sinat_32547403
  • 2016年11月15日 12:13
  • 310

LeetCode(38) Count and Say

题目The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111...
  • fly_yr
  • fly_yr
  • 2015年08月26日 11:14
  • 3723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetCode 38.Count and Say (计数和发言) 解题思路和方法
举报原因:
原因补充:

(最多只允许输入30个字)