• 每日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
  • 相关阅读:
    POJ 3278 Catch That Cow(BFS)
    POJ 2488 A Knight's Journey(DFS)
    POJ 2386 Lake Counting(DFS)
    迷宫问题(BFS)
    两点(DFS)
    POJ 1001 Exponentiation(大数运算)
    Java IO流01-总叙
    hdu 2065 "红色病毒"问题(快速幂求模)
    POJ 2251 Dungeon Master(BFS)
    POJ 1321 棋盘问题(DFS)
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14961074.html
Copyright © 2020-2023  润新知