美文网首页
leetcode 报数

leetcode 报数

作者: 仁安天下 | 来源:发表于2019-10-14 09:33 被阅读0次

    报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

    1. 1
      
    2. 11
      
    3. 21
      
    4. 1211
      
    5. 111221
      

    1 被读作 "one 1" ("一个一") , 即 11。
    11 被读作 "two 1s" ("两个一"), 即 21。
    21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211。

    给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。

    注意:整数顺序将表示为一个字符串。

    示例 1:

    输入: 1
    输出: "1"
    示例 2:

    输入: 4
    输出: "1211"

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/count-and-say
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution(object):
        def countAndSay(self, n):
            """
            :type n: int
            :rtype: str
            """
            if n==1:
                return "1"
            
            ret_data=self.countAndSay(n-1)
            print ret_data
            cur=ret_data[0]
            cur_index=0
            new_ret_data=""
            for index,val in enumerate(ret_data):
                       
                if val!=cur:
                    
                    new_ret_data+=str((index-cur_index))+cur
                    cur=val
                    cur_index=index
                if index==len(ret_data)-1:
                    new_ret_data+=str((index+1-cur_index))+cur
                    return new_ret_data  
    

    暂时先想到递归

    相关文章

      网友评论

          本文标题:leetcode 报数

          本文链接:https://www.haomeiwen.com/subject/wqmhmctx.html