首页 > 试题广场 >

记票统计

[编程题]记票统计
  • 热度指数:135276 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}某场选举一共有 n 位候选人入选,候选人的名字均由大写字母构成,且互不相同,使用 c_1, c_2, \dots, c_n 表示。
\hspace{15pt}选举结束后,统计了 m 张选票,每张选票上均写有候选人的名字,使用 v_1, v_2, \dots, v_m 表示。
\hspace{15pt}求解每个候选人获得的票数。特别地,如果某张选票上的候选人名字不在候选名单中,则该票视为无效票。你需要同时统计无效票的数量。

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 100\right) 代表候选人数。
\hspace{15pt}第二行输入 n 个长度为 1 \leqq {\rm len}(c_i) \leqq 10、仅由大写字母构成的字符串 c_1, c_2, \dots, c_n,代表候选人的名字。保证候选人的名字互不相同。
\hspace{15pt}第三行输入一个整数 m \left(1 \leqq m \leqq 100\right) 代表投票人数。
\hspace{15pt}第四行输入 m 个长度为 1 \leqq {\rm len}(v_i) \leqq 10、仅由大写字母构成的字符串 v_1, v_2, \dots, v_m,代表投票内容。


输出描述:
\hspace{15pt}对于每一位候选人,新起一行。先输出其名字,随后输出一个空格、一个冒号、一个空格作为间隔,最后输出其获得的票数。形如 c_i \texttt{ : } {\rm numbers}_i,其中 c_i 是候选人的名字,{\rm numbers}_i 是候选人的票数。
\hspace{15pt}最后一行以相同的格式输出无效票的数量。形如 \texttt{Invalid : } {\rm numbers},其中 {\rm numbers} 是无效票的数量。
示例1

输入

4
A B C D
8
A D E CF A GG A B

输出

A : 3
B : 1
C : 0
D : 1
Invalid : 3

说明

\hspace{15pt}在这个样例中,\texttt{E},\texttt{CF},\texttt{GG} 三张票是无效的。
var num1 = await readline();
    var str1 = await readline();
    var num2 = await readline();
    var str2 = await readline();
    var arr1 = str1.split(" ");
    var arr2 = str2.split(" ");
    var obj = {};
    var invalid = 0;
    arr1.forEach(v=>{
        obj[v] = 0;
    })
    arr2.forEach(v=>{
        if(arr1.includes(v)){
            obj[v]++;
        }else{
            invalid++;
        }
    })

    for(var k in obj){
        console.log(`${k} : ${obj[k]}`);
    }
   
    console.log(`Invalid : ${invalid}`);

发表于 2023-10-06 17:25:05 回复(0)
readline();
const candicates = readline().split(' ');
readline();
const votes = readline().split(' ');

let res = {}
candicates.forEach(c => {
    res[c] = 0;
})
res.Invalid = 0
votes.forEach(c => {
    if(res[c] !== undefined){
        res[c] += 1;
    }else{
        res.Invalid +=1;
    }
})
for(let key in res){
    console.log(`${key} : ${res[key]}`)
}

发表于 2022-07-31 21:36:46 回复(0)
const res = [];
function func(line) {
  res.push(line);
  // 如果数组长度等于4,进入计算
  if (res.length === 4) {
    const hNum = res[0];
    const hArr = res[1].split(" ");
    const tNum = res[2];
    const tArr = res[3].split(" ");
    const map = {};
    for (let t of tArr) {
      // 开始统计票数
      const key = hArr.includes(t) ? t : "Invalid";
      map[key] ? map[key]++ : (map[key] = 1);
    }
    // 开始打印结果
    for (let h of hArr) {
      console.log(h + " : " + (map[h] || 0));
    }
    console.log("Invalid : " + (map["Invalid"] || 0));
  }
}
while ((line = readline())) {
  func(line);
}

发表于 2022-06-05 17:33:11 回复(0)