华为OJ 初级:记票统计
2016-07-28 10:56
375 查看
描述 | 请实现接口:unsigned int AddCandidate (char* pCandidateName); 功能:设置候选人姓名 输入: char* pCandidateName 候选人姓名 输出:无 返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1 Void Vote(char* pCandidateName); 功能:投票 输入: char* pCandidateName 候选人姓名 输出:无 返回:无 unsigned int GetVoteResult (char* pCandidateName);功能:获取候选人的票数。如果传入为空指针,返回无效的票数,同时说明本次投票活动结束,释放资源 输入: char* pCandidateName 候选人姓名。当输入一个空指针时,返回无效的票数输出:无 返回:该候选人获取的票数 void Clear()// 功能:清除投票结果,释放所有资源 // 输入: // 输出:无 // 返回 |
---|---|
知识点 | 查找 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入候选人的人数,第二行输入候选人的名字,第三行输入投票人的人数,第四行输入投票。 |
输出 | 每行输出候选人的名字和得票数量。 |
样例输入 | 4 A B C D 8 A B C D E F G H |
样例输出 | A : 1 B : 1 C : 1 D : 1 Invalid : 4 |
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int candidateNum = scanner.nextInt(); String[] candidateName = new String[candidateNum]; for (int i = 0; i < candidateNum; i++) candidateName[i] = scanner.next(); int voterNum = scanner.nextInt(); String[] vote = new String[voterNum]; for (int i = 0; i < voterNum; i++) vote[i] = scanner.next(); scanner.close(); int[] getVote = new int[candidateNum]; //定义数组,长度等于候选人数 int invalid = 0; for (int i = 0; i < voterNum; i++) { for (int j = 0; j < candidateNum; j++) { if (candidateName[j].equals(vote[i])) {//遍历到和投票名相同的名字,则投票数++,并跳出到下一个投票名 getVote[j]++; break; } if (j == candidateNum - 1) //候选人名单数组遍历完还没有匹配的名字,则invalid++ invalid++; } } for (int i = 0; i < candidateNum; i++) System.out.println(candidateName[i] + " : " + getVote[i]); System.out.print("Invalid : " + invalid); } }
相关文章推荐
- 用数据讲故事 七种不同的数据展示方法
- 数据结构——红黑树
- 技术总监成长之路
- Ubuntu的flash不能用(如百度文库看不了)解决办法
- 关于++运算符在java与c里面的区别
- NGINX不支持SLIM访问模式问题
- 跳舞链
- iOS -键盘显示与隐藏
- Longest Palindromic Substring (Manacher)
- 后端线上服务监控与报警方案
- Web Api使用VS实现自动化测试
- HttpSessionBindingListener的使用
- 转:前端规范(整理的过程就是学习的过程,学习的过程就是总结的过程)
- 使用FAAD库解码AAC实例
- cJSON 解析器开源项目学习笔记
- Android推送通知指南
- 微信jssdk开发
- No tests found with test runner 'JUnit 3'
- Android推送通知指南
- Java8特性---关于Null