题目描述:
给你一个整数 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 (以字符串形式)如果上述条件全不满足。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fizz-buzz
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我自己看了这个题之后的第一个想法就是暴力解题。
class solution:
def fizzBuzz(self, n: int):
fizz = "Fizz"
buzz = "Buzz"
fizzbuzz = "FizzBuzz"
list_0 = []
for i in range(1,n+1):
if i % 3 == 0 and i % 5 != 0:
list_0.append(fizz)
elif i % 3 != 0 and i % 5 == 0:
list_0.append(buzz)
elif i % 3 == 0 and i % 5 == 0:
list_0.append(fizzbuzz)
else:
list_0.append(str(i))
return list_0
遍历n,检查i,第一个条件:能被3整除,不能被5整除;
第二个条件:能被5整除,不能被3整除;
第三个条件:既能被3整除,又能被5整除;
除此之外就是添加数字i的字符串形式。
官方解法:
class solution:
def fizzBuzz_1(self, n: int):
ans = []
for i in range(1,n+1):
s = ""
if i % 3 == 0:
s += "Fizz"
if i % 5 == 0:
s += "Buzz"
if s == "":
s = str(i)
ans.append(s)
return ans
这样看起来逻辑就简单了,遍历数字,检查是否能被3整除,如果可以字符串就添加"Fizz",如果数字能被5整除,那就添加"Buzz",同理,既能被3整除又能被5整除就添加了"Fizz"和"Buzz",如果以上条件都不满足的话,那么s字符串仍是空字符串,那么就添加str(i).