LeetCode.412. Fizz Buzz

本文介绍了一个简单的程序,该程序能够输出从1到n的数字字符串表示,并根据数字是否为3或5的倍数输出特定字符串。例如,当n为15时,程序将输出包括'1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz'等在内的列表。

写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

示例:

n = 15,

返回: [
“1”,
“2”,
“Fizz”,
“4”,
“Buzz”,
“Fizz”,
“7”,
“8”,
“Fizz”,
“Buzz”,
“11”,
“Fizz”,
“13”,
“14”,
“FizzBuzz” ]

思路:

对于每个数字,设置两个变量分别记录其是否被3或5整除,检查两个变量时需要注意,有四种情况。

代码:

class Solution(object):
    def fizzBuzz(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        c=[]
        for x in range(1,n+1):
            count3=0
            count5=0
            if x%3==0:
                count3=1
            if x%5==0:
                count5=1
            if count3==0 and count5==0:
                c.append(str(x))
            elif count3==0 and count5==1:
                c.append('Buzz')
            elif count3==1 and count5==0:
                c.append('Fizz')
            elif count3==1 and count5==1:
                c.append('FizzBuzz')
        return c

分析:

时间复杂度O(n),空间复杂度O(n)

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值