【leetcode系列】【py3】【简单】外观数列

题目:

【leetcode系列】【py3】【简单】外观数列

原题链接: https://leetcode-cn.com/problems/count-and-say/

 

解题思路:

第一行已知为'1'

从第二行开始,递归遍历处理上一行字符串

直到第n行

 

代码实现:

class Solution:
    def countAndSay(self, n: int) -> str:
        result_str, floor = '1', 1
        
        while floor < n:
            num, tmp_str = 1, ""
            for index in range(1, len(result_str)):
                if result_str[index] == result_str[index - 1]:
                    num = num + 1
                else:
                    tmp_str += str(num) + result_str[index - 1]
                    num = 1
                    
            tmp_str += str(num) + result_str[-1]
            result_str = tmp_str
            floor += 1
            
        return result_str