题目
写一个程序,输出从 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"
]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fizz-buzz
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
1. 原始解法
对于每一个i,用一个空字符串记录它对应的输出。如果i是3的倍数,则在字符串结尾加上Fizz。如果i是5的倍数,则在字符串结尾加上Buzz。如果i既不是3的倍数,也不是5的倍数,那么此时它对应的字符串应该仍为空,我们讲这个字符串改为“i”即可。
结果:用过测试用例,用时32ms,内存使用量15.3MB
代码:
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
answers = []
for i in range(n):
answer = ''
if (i + 1) % 3 == 0:
answer += 'Fizz'
if (i + 1) % 5 == 0:
answer += 'Buzz'
if not answer:
answer = str(i+1)
answers.append(answer)
return answers