题解 | 小红书推荐系统
小红书推荐系统
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)
}
}()
#今天你投了哪些公司?##金三银四,你的春招进行到哪个阶段了?#