34 - Easy - 数数并说

2018-05-22  本文已影响0人  1f872d1e3817

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

  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 ,输出报数序列的第 n 项。

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

示例 1:

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

输入: 4
输出: "1211"

class Solution:
    def countAndSay(self, n):
        """
        :type n: int
        :rtype: str
        """
        _list = ["1"]
        for i in range(n-1):
            temp = _list[-1]
            cur = temp[0]
            j = 1
            count = 1
            s = ''
            while j < len(temp):
                if cur != temp[j]:
                    s += str(count) + str(cur)
                    count = 1
                    cur = temp[j]
                else:
                    count += 1
                j += 1
            s += str(count) + str(cur)
            _list.append(s)
        return _list[-1]
上一篇下一篇

猜你喜欢

热点阅读