第96期-基础结构:字符串 Fizz Buzz

1 问题描述

写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;

  2. 如果 n 是5的倍数,输出“Buzz”;

  3. 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

示例 1:

输入: n = 15
输出: ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

示例 2:

输入: n = 5
输出: ['1', '2', 'Fizz', '4', 'Buzz']

初始代码

from typing import List
class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        #在此之间填写代码

print(Solution().fizzBuzz(15))
print(Solution().fizzBuzz(5))
View Code

2 解题思路

  • 标签:字符串
  • 就像你每次玩 FizzBuzz 那样,你只需要判断这个数是能被 3 整除? 还是能被 5 整除? 或者是都能被整除。
  • 初始化一个空的答案列表。
  • 遍历 1 ... N。
  • 对于每个数,判断它能不能同时被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案列表。
  • 如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入答案列表。
  • 如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入答案列表。
  • 如果以上都不行,把这个数加入答案列表。

#3 解题方法

from typing import List
class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        i=1
        a=[]
        while i<=n:
            if i%3==0 and i%5==0:a.append('FizzBuzz')
            elif i%3==0:a.append('Fizz')
            elif i%5==0:a.append('Buzz')
            else:a.append(str(i))
            i+=1
        return a


print(Solution().fizzBuzz(15))
print(Solution().fizzBuzz(5))
View Code

第1-3,15-16行: 题目中已经给出的信息,运行代码时要根据这些代码进行编辑
第4行: 创建变量i用于索引
第5行: 定义空列表a用于存放结果
第6行: 当i<=n的时候,执行循环
第7行: 判断它能不能同时被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案a列表
第8行: 如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入答案a列表
第9行: 如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入答案a列表
第10行: 如果以上都不行,把这个数加入答案a列表
第11行: i+=1用于下次循环
第12行: 返回答案a列表

代码运行结果为:
image.jpg

posted @ 2022-01-06 20:46  LG03  阅读(81)  评论(0)    收藏  举报