写一个程序,输出从 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)
参考:
无