每天写一题,坚持记录。欢迎讨论更优解法~
给你一个整数 n,找出从 1 到 n 各个整数的Fizz Buzz
表示,并用字符串数组answer
(下标从1开始)返回结果,其中:
answer[i] == "FizzBuzz"
如果i
同时是3和5的倍数。answer[i] == "Fizz"
如果i
是3的倍数。answer[i] == "Buzz"
如果i
是5的倍数。answer[i] == i
(以字符串形式)如果上述条件全不满足。输入:n = 3
输出:["1", "2", "Fizz"]
1 <= n <= 10^4
Python
class Solution(object):
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
answer = [] #定义空列表
for i in range(1, n+1): #基本语法 range(起始,终点,步长) 终点不包含本身。
if i % 3 == 0 and i % 5 == 0: #既能被3也能被5整除
answer.append("FizzBuzz")
elif i % 3 == 0: #能被3整除
answer.append("Fizz")
elif i % 5 == 0: #能被5整除
answer.append("Buzz")
else: #否则赋值本身(字符串格式)
answer.append(str(i))
return answer #函数返回结果列表
执行用时28ms,内存消耗13.9MB。解法虽能跑通,但性能较差,后面有时间补充更优解法。