首页 > 其他 > 详细

LeetCode解题报告-- Count and Say

时间:2015-12-03 15:37:34      阅读:238      评论:0      收藏:0      [点我收藏+]

题目:

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.
点击解题:Count and Say

分析:题意是要求通过程序生成一组符合题意要求的字符串,
题目难度不高,基本思路是:以n为例,直接从左向右扫描n-1字符串,计算出现相同数字的个数 ,直至扫描结束!示意图如下:初始:count = 1,,每遇到数字相同,count++,然后将count转为字符串或字符类型 + 当前数组字符 以此为规律找出nth字符串。
技术分享

java代码: Accepted

public class Solution {
    public String countAndSay(int n) {
       String newS = "1";
       int count = 1;
       int i = 1;
       while(i < n){
           String s = newS;
           newS = "";
           for(int j = 0;j < s.length();j ++){
                if( (j + 1) < s.length() && s.charAt(j) == s.charAt(j + 1)){
                    count ++;
                }else{
                    newS = newS + count + s.charAt(j);
                    count = 1;
                }
            }
            i ++;
       }
       return newS;
    }
}

python代码 Accepted

class Solution(object):
    def countAndSay(self, n):
        """
        :type n: int
        :rtype: str
        """
        i = 1
        count = 1
        newS = "1"

        while i < n:
            s= newS
            newS = ""

            for j in range(len(s)):
                if((j + 1) < len(s) and s[j] == s[j + 1]):
                    count = count + 1
                else:
                    newS = newS + str(count) + s[j]
                    count = 1
            i = i + 1
        return newS

LeetCode解题报告-- Count and Say

原文:http://blog.csdn.net/github_27609763/article/details/50161021

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!