记票统计

描述

模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用“A”、”B”、”C”、”D”表示,选举时开始计票,

若输入的不是“A”、”B”、”C”、”D”则视为无效票。选举结束后获取各个候选人的得票数以及无效票的个数,输出结果以

添加候选人的顺序进行顺序输出,最后一行为无效的数量。同时getVoteResult命令为结束命令。

运行时间限制:

无限制

内存限制:

无限制

输入:

输入为多行形式输入,每一行为一条命令。输入的命令只会是有效命令不会有非法命令,但可能存在非法的投票,上面已经描述了。

添加候选人的命令如下:addCandidate为命令 xx1为候选人

addCandidate xx1

投票的命令如下:vote为命令 xx1为候选人的字符串

vote xx1

统计投票的命令如下:getVoteResult为命令

getVoteResult

输出:

输出结果以添加候选人的顺序进行顺序输出,最后一行为无效的数量。

样例输入:

addCandidate xx1

addCandidate xx2

addCandidate xx3

addCandidate xx4

addCandidate xx5

addCandidate xx6

vote xx1

vote xx3

vote xx4

vote xx1

vote xx2

vote xx7

vote xx4

vote xx5

vote xx3

vote xx2

vote xx1

vote xx7

getVoteResult

样例输出:

xx1 3

xx2 2

xx3 2

xx4 2

xx5 1

xx6 0

2

import java.util.Scanner;class Candidate {String name;int voteNumber;Candidate(String s) {this.name = s;this.voteNumber = 0;}void vote() {this.voteNumber++;}
}public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String order;String temp;Candidate candidate[] = new Candidate[10];int i = 0;int wx = 0;do {order = in.nextLine();if (order.startsWith("addCandidate")) {temp = order.substring("addCandidate".length()).trim();if(temp.length()!=0)candidate[i++] = new Candidate(temp);} else if (order.startsWith("vote")) {temp = order.substring("vote".length()).trim();try {for (int j = 0; j < candidate.length; j++) {if (candidate[j].name.equals(temp)) {// 产生空指针异常即产生无效选票candidate[j].vote();break;}}} catch (NullPointerException e) {wx++;}} else if (order.equals("getVoteResult")) {for (int j = 0; j < candidate.length; j++) {if (candidate[j] == null) {System.out.println(wx);System.exit(0);}else {System.out.println(candidate[j].name + " "+ candidate[j].voteNumber);}}break;}} while (true);}
}

华为2014机试样题1: 计票统计 java实现相关推荐

  1. 2015年华为实习生机试样题(记票统计,计算麻将的番数,Word Maze(单词迷宫))

    这是华为今年实习生招聘给的样题,还是特别喜欢考字符串处理问题. 记票统计 描述: 模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用"A"."B" ...

  2. 【华为OD机试 】 免单统计(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...

  3. 华为OD机试题【热点网络统计】用 Java 解 | 含解题说明

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华 ...

  4. 华为odjava机试题_经验分享:Java粉丝面试18K华为OD岗位的真实过程

    续集 是下面文章的续集,出来面试的遭遇 一本粉丝 先说我的情况,双非一本,19年毕业,计算机专业,只过四级,刚刚一年经验.互联网的项目,只是在银行干过一小段时间,还是实习,之后就是业务型的增删改查公司 ...

  5. 华为OD机试之打印机队列(Java源码)

    打印机队列 题目描述 有5台打印机打印文件,每台打印机有自己的待打印队列. 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中 数字越大优先级越高 打印机会从自己的待打印队 ...

  6. 华为OD机试之用户调度问题(Java源码)

    用户调度问题 题目描述 在通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和性能. 假设当前有n个待串行调度用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消 ...

  7. 华为OD机试之完美走位(Java源码)

    完美走位 题目描述 在第一人称射击游戏中,玩家通过键盘的A.S.D.W四个按键控制游戏人物分别向左.向后.向右.向前进行移动,从而完成走位. 假设玩家每按动一次键盘,游戏任务会向某个方向移动一步,如果 ...

  8. 华为OD机试 - 执行时长(Java JS Python)

    题目描述 为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务. 假设GPU最多一次执行n个任务,一次执行耗时1秒,在 ...

  9. 华为OD机试 - 天然蓄水库(Java JS Python)

    题目描述 公元2919年,人类终于发现了一颗宜居星球--X星. 现想在X星一片连绵起伏的山脉间建一个天热蓄水库,如何选取水库边界,使蓄水量最大? 要求: 山脉用正整数数组s表示,每个元素代表山脉的高度 ...

最新文章

  1. mount 挂载磁盘报错 mount: wrong fs type, bad option, bad superblock on
  2. nginx0.8 + php-5.3.4 + memcached
  3. iOS和android运存机制,为什么苹果4GB运存却比安卓8GB更丝滑流畅?看完立马涨知识了...
  4. 云炬随笔20211002
  5. Qt插件:在Qt中进行ROS开发(一)
  6. Shell数组操作(添加、删除元素、清空、遍历)
  7. android-实现一个简单的视频弹幕,Android未来路在何方
  8. flash将文本呈现为html,flash中的静态文本、动态文本、输入文本
  9. 安卓ssr无网络连接_安卓手机不能上网无法链接网络的原因及解决方法
  10. Intellij idea keymap
  11. 音乐计算机在哪里买,[计算器自带音乐在哪里]语音计算器上的音乐有什
  12. 破解Photoshop cs6
  13. 蓝桥网算法提高 学霸的迷宫
  14. 五大靠谱的婚恋相亲APP详细特点缺点分析!
  15. 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
  16. Charles-解决unknown的问题
  17. 软件开发和硬件开发编程的比较
  18. java开发规范--编程规约--集合处理
  19. 使用esp32cam与stm32c8t6核心板开发的99A静改动
  20. 【高频电子线路】信号的调幅与解调

热门文章

  1. 认识3dmax 轴心
  2. 正则表达式----座机+手机号
  3. 从入职到离职的收获——ICT四个月
  4. 下载者DownLoader.Win32.Undef分析
  5. 锐捷客户端下虚拟机VMware无法联网的问题
  6. GSEA富集分析 - 界面操作
  7. 网站推广策略-网站推广120种实用方法_打杂的_新浪博客
  8. 两级式单相光伏发电系统双闭环控制设计仿真
  9. STM32数据采集及上云实现——DHT11温湿度采集
  10. HTML5实现简易计算器