写一个程序,输出从 1 到 n 数字的字符串表示。
- 如果 n 是3的倍数,输出“Fizz”;
- 如果 n 是5的倍数,输出“Buzz”;
- 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
n = 15,
返回:
[
“1”,
“2”,
“Fizz”,
“4”,
“Buzz”,
“Fizz”,
“7”,
“8”,
“Fizz”,
“Buzz”,
“11”,
“Fizz”,
“13”,
“14”,
“FizzBuzz”
]
我的解法:
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
listr = []
for i in range(1,n+1):
if i % 15 == 0:
listr.append("FizzBuzz")
elif i % 3 == 0:
listr.append("Fizz")
elif i % 5 == 0:
listr.append("Buzz")
else:
listr.append(str(i))
return listr
python运算符:https://www.runoob.com/python/python-operators.html
官方解法:字符串连接(比较优雅的解法) https://leetcode-cn.com/problems/fizz-buzz/solution/fizz-buzz-by-leetcode/
class Solution:
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
# ans list
ans = []
for num in range(1,n+1):
divisible_by_3 = (num % 3 == 0)
divisible_by_5 = (num % 5 == 0)
num_ans_str = ""
if divisible_by_3:
# Divides by 3
num_ans_str += "Fizz"
if divisible_by_5:
# Divides by 5
num_ans_str += "Buzz"
if not num_ans_str:
# Not divisible by 3 or 5
num_ans_str = str(num)
# Append the current answer str to the ans list
ans.append(num_ans_str)
return ans
力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xngt85/