当前位置:首页 > 编程笔记 > 正文
已解决

【LeetCode】 412. Fizz Buzz

来自网友在路上 150850提问 提问时间:2023-10-20 02:27:52阅读次数: 50

最佳答案 问答题库508位专家为你答疑解惑

题目链接

在这里插入图片描述
在这里插入图片描述

文章目录

    • Python3 【O(n) O(1)】
    • C++
      • .emplace_back() 【C++ 11 之后】

Python3 【O(n) O(1)】

初始版本

class Solution:def fizzBuzz(self, n: int) -> List[str]:ans = []for i in range(1, n+1):if i % 5 == 0 and i % 3 == 0:ans.append("FizzBuzz")elif i % 3 == 0:ans.append("Fizz")  elif i % 5 == 0:ans.append("Buzz")else:ans.append(str(i))return ans 

第一种情况 就是两种情况同时满足,两个都输出
在这里插入图片描述
官方题解的 逻辑也可以

  • 需要注意 顺序
class Solution:def fizzBuzz(self, n: int) -> List[str]:ans = []for i in range(1, n+1):# 拼接 输出的 字符串 ss = ""if i % 3 == 0:s += "Fizz"if i % 5 == 0:s += "Buzz"if s == "": # 既不是3的倍数,也不是5的倍数s = str(i)  ans.append(s)return ans 

C++

class Solution {
public:vector<string> fizzBuzz(int n) {vector<string> ans;for (int i = 1; i <= n; ++i){string s;if (i % 3 == 0){s += "Fizz";}if (i % 5 == 0){s += "Buzz";}if (s.size() == 0){s = to_string(i);}//ans.push_back(s);ans.emplace_back(s);  // 比 push_back 快}return ans;}
};

.emplace_back() 【C++ 11 之后】

在 C++11 之后,vector 容器中添加了新的方法emplace_back() ,和 push_back() 一样的是都是在容器末尾添加一个新的元素进去,不同的是 emplace_back() 在效率上相比较于 push_back() 有了一定的提升

emplace_back 将一个就地构造的元素添加到向量末尾。
在这里插入图片描述

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【LeetCode】 412. Fizz Buzz":http://eshow365.cn/6-20006-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!