题解 | 小红书推荐系统

小红书推荐系统

https://www.nowcoder.com/practice/e5b39c9034a84bf2a5e026b2b9b973d0

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    let obj = {}
    while (line = await readline()) {
        let tokens = line.split(' ');
        
        // 将数组转为对象,并统计出现次数
        for (let i = 0; i < tokens.length; i++) {
            let name = tokens[i]
            if (!obj[name]) {
                obj[name] = 1;
            } else {
                obj[name]++;
            }
        }
    }

    // 将对象转为数组
    let arr = []
    for (let key in obj) {
        if (obj[key] >= 3) {
            arr.push({ name: key, num: obj[key] })
        }
    }

    // 出现次数倒序,名称升序
    arr.sort((a, b) => {
        if (a.num !== b.num) {
            return b.num - a.num
        } else {
            // localeCompare实现字符串的排序
            return a.name.localeCompare(b.name);
        }
    })

    // 循环打印
    for(let i=0;i<arr.length;i++){
        console.log(arr[i].name)
    }

}()

#今天你投了哪些公司?##金三银四,你的春招进行到哪个阶段了?#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务