动手写之前先定什么(C++)
选型定了之后、动手实现之前,先要定的是【0】。
边写边验的办法
第 1 步:按顺序一个个处理 第 2 步:3 没见过:记下 第 3 步:7 没见过:记下 第 4 步:3 见过了:跳过 第 5 步:5 没见过:记下 第 6 步:7 见过了:跳过 第 7 步:3 见过了:跳过 3 7 3 5 7 3 3 7
实现和选型的关系
选型说「用集合判重」,实现时却写成了在 vector 里 find,结果是【0】。
去重之后还剩几个
运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <
实现 add:判重加保序
补全 add:用集合判重、数组记顺序,没见过才追加。六个词全加完之后,输出记下来的第二个词。 (本题用 g++ -std=c++17 -O0 编译。)
实现词频统计
补全 word_count:返回一个「词 → 次数」的 map。补全后输出苹果出现了几次。 (本题用 g++ -std=c++17 -O0 编译。)
实现 top:出现最多的是哪个
补全 top_word:返回出现次数最多的那个词。 (本题用 g++ -std=c++17 -O0 编译。)
三个操作串起来验一遍
三个函数的框架都写好了,补全 dedup 和 top_word 的函数体,然后跑三条检查:去重之后剩 3 个、苹果出现 3 次、出现最多的是苹果。三条全过输出 三项通过,否则输出 有失败。 (本题用 g++ -std=c++17 -O0 编
两种做法对比最要紧的是
第 1 步:数一数两种判重各比几次 第 2 步:n = 10 时 第 3 步:n = 100 时 第 4 步:n = 200 时 第 5 步:量翻倍:一个翻四倍一个翻倍 n=10 n=100 n=200 线性 集合 45 10 4950 1
只跑一次就下结论
计时只跑一次就下结论,问题是【0】。