【LeetCode】38. 外观数列

题目描述(简单难度)

【LeetCode】38. 外观数列_第1张图片
【LeetCode】38. 外观数列_第2张图片

解题思路

先实现怎么通过’1’获得’11’,然后再通过’11’获得’21’,依此类推
【LeetCode】38. 外观数列_第3张图片

python 代码

class Solution:
    def countAndSay(self, n: int):
        i = 1
        while i <= n:
            if i == 1:
                a = "1"
            else:
                a = self.bb(str(a))
            i += 1
        return a

    def bb(self, n):
        res = []
        count= 0
        for i in range(len(n)):
            if i > 0 and n[i] == n[i - 1]:
                count += 1
                a = str(count) + n[i]
                res[-1] = a
            else:
                count = 1
                a = str(count) + n[i]
                res.append(a)
        return "".join(res)

s = Solution()
result = s.countAndSay(6)
print(result)

你可能感兴趣的:(LeetCode)