题解 | #记票统计#

记票统计

https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894

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 index = 0;
    let n = 0;
    let cadidates = [];
    let m = 0;
    let voters = [];

    while ((line = await readline())) {
        switch (index) {
            case 0:
                n = parseInt(line);
            case 1:
                cadidates = line.split(" ");
            case 2:
                m = parseInt(line);
            case 3:
                voters = line.split(" ");
        }
        index++;
    }

    var hashmap = new Map();
    for (let i = 0; i < n; i++) {
        // 初始化候选人及票数信息
        hashmap.set(cadidates[i], 0);
    }
    hashmap.set("Invalid", 0); // 初始化不合法票数信息

    for (const v of voters) {
        if (cadidates.some((item) => item === v)) {
            let k = hashmap.get(v);
            hashmap.set(v, k + 1);
        } else {
            let k = hashmap.get("Invalid");
            hashmap.set("Invalid", k + 1);
        }
    }

    let keyArr = hashmap.keys();
    let valueArr = hashmap.values();
    for (let i = 0; i <= n; i++) {
        console.log(keyArr.next().value, ":", valueArr.next().value);
    }
})();

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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