【LeetCode】 412. Fizz Buzz

题目链接


文章目录

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

Python3 【O(n) O(1)】

初始版本

python 复制代码
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 

第一种情况 就是两种情况同时满足,两个都输出

官方题解的 逻辑也可以

  • 需要注意 顺序
python 复制代码
class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        ans = []
        for i in range(1, n+1):
            # 拼接 输出的 字符串 s
            s = ""
            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++

cpp 复制代码
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 将一个就地构造 的元素添加到向量末尾。

相关推荐
王老师青少年编程19 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌
weixin_5134499620 小时前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
烟锁池塘柳020 小时前
一文讲透 C++ / Java 中方法重载(Overload)与方法重写(Override)在调用时机等方面的区别
java·c++·面向对象
yolo_guo21 小时前
glog单行 30000 字节限制问题
c++
cccccc语言我来了21 小时前
C++轻量级消息队列服务器
java·服务器·c++
闻缺陷则喜何志丹21 小时前
【背包 组合】P7552 [COCI 2020/2021 #6] Anagramistica|普及+
c++·算法·背包·洛谷·组合
xiaoye-duck21 小时前
【C++:C++11】C++11新特性深度解析:从类新功能、Lambda表达式到包装器实战
开发语言·c++·c++11
一个行走的民21 小时前
C++ Lambda 表达式语法详解
c++
小小码农Come on1 天前
C++访问QML控件-----QML访问C++对象属性和方法
java·开发语言·c++
Yungoal1 天前
项目层级结构
c++