【LeetCode】【字符串】题号:*481. 神奇字符串

every blog every motto: You will never know unless you try

0. 前言

冲冲冲

1. 字符串

在这里插入图片描述

1.1 题目

在这里插入图片描述

1.2 代码

class Solution:
    def magicalString(self, n: int) -> int:
        # 初始情况
        if n == 0:
            return 0
        elif n <= 3:
            return 1
        # 模型生成字符串
        strs = '122'
        flag = True  # T:1,F:2
        for i in range(2, n):
            num_time = int(strs[i]) - 0  # 当前字符的数值,即接下来字符出现的次数
            while num_time > 0:
                if flag:
                    strs += '1'
                else:
                    strs += '2'
                num_time -= 1

            # 因为1和2是交替出现的,所以改变flag
            flag = not flag

        # 再次遍历
        result = 0
        for i in range(n):
            if strs[i] == '1':
                result += 1
        return result

1.3 结果

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_39190382/article/details/119844563
Recommended