leetcode 报数

2019-10-14  本文已影响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  

暂时先想到递归

上一篇下一篇

猜你喜欢

热点阅读