python FizzBuzz问题
1.当n为3的倍数,输出Fizz
2.当n为5的倍数,输出Buzz
3.当n为15的倍数,输出FizzBuzz
其他时候输出相应数字的字符串,如1==>"1"
方法一:最笨的方法;时间与空间复杂度都为O(n)
class Solution(object):
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
list_str=[]
for num in range(1,n+1):
if (num%5 == 0)&(num%3 == 0):
list_str.append('FizzBuzz')
elif num%5 == 0:
list_str.append('Buzz')
elif num%3 == 0:
list_str.append('Fizz')
else:
list_str.append(str(num))
return list_str
方法二:列表循环式,极其简单
class Solution(object):
def fizzBuzz(self, n):
return ['Fizz' * (not i % 3) + 'Buzz' * (not i % 5) or str(i) for i in range(1, n+1)]