Skip to main content

Count and Say

Count and Say

描述

按照”个数+数字”可以将字符串”读出来”, 如”21”是”1个2, 1个1”, 即”1221”
从”1”开始, 按照以上的规则, 逐个读出每个读出后的字符串

示例:
输入: 2
输出: 21

分析

先写一个 给定一个字符串, 按照规则生成另一个”计数+读”的字符串 的方法, 之后对于每个生成的字符串重复调用方法即可, 比较简单

答案

class Solution(object):
    def say(self, s):
        current_byte = s[0]
        current_num = 0
        res = ""
        for b in s + "|":
            if b == current_byte:
                current_num += 1
                continue
            res += str(current_num) + current_byte
            current_num = 1
            current_byte = b
        return res
    def countAndSay(self, n):
        """
        :type n: int
        :rtype: str
        """
        res = "1"
        for i in range(n - 1):
            res = self.say(res)
        return res
打赏
微信扫一扫支付
微信logo微信扫一扫, 打赏作者吧~