分类:字符串-字符与数字串间转换
题目描述:
写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
解题思路:直接遍历判断,取余数
class Solution: def fizzBuzz(self, n: int) -> List[str]: L = [] for i in range(1,n+1): if i % 3 == 0 and i % 5 != 0: L.append('Fizz') elif i % 5 == 0 and i % 3 != 0: L.append('Buzz') elif i % 5 == 0 and i % 3 == 0: L.append('FizzBuzz') else: L.append(str(i)) return L
时间复杂度:O(n)遍历
空间复杂度:O(n) 用了一个数组来存结果
代码优化:要先判断是否同时是3和5的倍数,不然会在判断3的时候就直接判断为3的结果
class Solution: def fizzBuzz(self, n: int) -> List[str]: L = [] for i in range(1,n+1): if i % 15 == 0 : L.append('FizzBuzz') elif i % 3 == 0 : L.append('Fizz') elif i % 5 == 0 : L.append('Buzz') else: L.append(str(i)) return L