• 每日leetcode-数组-412. Fizz Buzz


    分类:字符串-字符与数字串间转换

    题目描述:

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

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

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

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

    解题思路:直接遍历判断,取余数

    class Solution:
        def fizzBuzz(self, n: int) -> List[str]:
            L = []
            for i in range(1,n+1):
                if i % 3 == 0 and i % 5 != 0:
                    L.append('Fizz') 
                elif i % 5 == 0 and i % 3 != 0:
                    L.append('Buzz') 
                elif i % 5 == 0 and i % 3 == 0:
                    L.append('FizzBuzz') 
                else:
                    L.append(str(i))
            return L

    时间复杂度:O(n)遍历

    空间复杂度:O(n) 用了一个数组来存结果

    代码优化:要先判断是否同时是3和5的倍数,不然会在判断3的时候就直接判断为3的结果 

    class Solution:
        def fizzBuzz(self, n: int) -> List[str]:
            L = []
            for i in range(1,n+1):
                if i % 15 == 0 :
                    L.append('FizzBuzz') 
                elif i % 3 == 0 :
                    L.append('Fizz') 
                elif i % 5 == 0 :
                    L.append('Buzz') 
    
                else:
                    L.append(str(i))
            return L
  • 相关阅读:
    伟东云学堂—几何画板学习
    京北鲤鱼----创客教育
    几何画板学习网站
    快乐的搬运工
    少儿编程网
    科技学堂 Arduino轻松学
    跟张老师学硬件arduino板
    科技学堂 Arduino传感器入门
    巧办网
    项目:git+gitlab+jenkins+ansible上线网站
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14961074.html
Copyright © 2020-2023  润新知