zoukankan      html  css  js  c++  java
  • 每日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
  • 相关阅读:
    Lambda 方法引用
    day7面向对象--进阶
    day6作业--选课系统
    day6面向对象--继承、多态
    day6面向对象
    day5模块学习--hashlib模块
    day5模块学习--configparser模块
    day5模块学习--yaml文件处理
    day5模块学习--XML模块
    day5模块学习--shelve模块
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14961074.html
Copyright © 2011-2022 走看看