2023 小红书笔试题 0806
笔试时间:2023年8月6日 秋招
第一题
题目:小红书推荐系统
小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。现在给定小孩的搜索记录(记录是分词后的结果),我们认为当一个单词出现的次数不少于3次时。该单词为“用户期望搜索的单词“,即为关键词。请你根据小红的记录,输出小红的用户画像对应得所有关键词。
输入描述
一行字符串。仅由小写字母和空格组成。代表小红的搜索记录。
字符串长度不超过100000.
输出描述
小红所有的关键词。每行输出一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。
样例输入
kou red game red ok who game red karaoke yukari kou red red nani kou can koukou ongakugame game
样例输出
red
game
kou
参考题解
哈希表判断每一个字符串的出现次数,判断即可。
C++:
#include <iostream> #include <unordered_map> #include <vector> #include <sstream> int main() { std::string input; std::getline(std::cin, input); std::istringstream iss(input); std::string word; std::unordered_map<std::string, int> cnts; while (iss >> word) { cnts[word]++; } for (const auto& pair : cnts) { if (pair.second >= 3) { std::cout << pair.first << std::endl; } } return 0; }
Java:
import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String[] lines = in.nextLine().split(" "); HashMap<String, Integer> cnts = new HashMap<>(); for (String line : lines) { cnts.put(line, cnts.getOrDefault(line, 0) + 1); } for (String s : cnts.keySet()) { if (cnts.get(s) >= 3) { System.out.println(s); } } } }
Python:
from collections import Counter line = input() words = line.split() cnts = Counter(words) for word, count in cnts.items(): if count >= 3: print(word)
第二题
题目:小红的分享日常
小红书很喜欢前往小红书分享她的日常生活。已知她生活中有n个事件,分享第i个事件需要她花费ti的时间和hi的精力来编辑文章,并能获得ai的快乐值。
小红想知道,在总花费时间不超过T且总花费精力不超过H的前提下,小红最多可以获得多少快乐值?
输入描述
第一行输入一个正整数n,代表事件的数量。
第二行输入两个正整数T和H,代表时间限制和精力限制。
接下来的n行,每行输入三个正整数ti,hi,ai,代表分享第i个事件需要花费ti的时间、hi的精力,收获ai的快乐值。
输出描述
一个整数,代表小红最多的快乐值
样例输入
2
2 2
1 3 3
3 1 4
样例输出
0
显然,小红无法分享任何事件
参考题解
动态规划。
经典的01背包问题
C++:
#include <iostream> #include <vector> int main() { int n, T, H; std::cin >> n >> T >> H; std::vector<int> t(n + 1); std::vector<int> h(n + 1); std::vector<int
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。