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 秋招笔试题汇总解析 文章被收录于专栏

2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

全部评论
第一题根本没保证顺序...
3 回复 分享
发布于 2024-03-05 20:24 湖南
第一天压根没法过嘛....
点赞 回复 分享
发布于 2024-07-15 11:49 重庆

相关推荐

点赞 评论 收藏
分享
喜欢喜欢喜欢:这是我见过最长最臭的简历
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务