2013华为杯编程大赛成都第三组试题及答案
来源:互联网 发布:单片机驱动12864 编辑:程序博客网 时间:2024/05/16 15:07
题目A:路灯统计
题目描述
某省会城市街道纵横交错,为了监控路灯的运行状况,每条街道使用一个数字字符串标识该街道上所有路灯的运行状况。
假设路灯只有如下3种状态(分别用数字0, 1, 2标识,一盏路灯只对应其中一种状态):
0 标识路灯熄灭;
1 标识路灯开启;
2 标识路灯故障;
请根据输入的字符串,找出该街道上连续的处于相同状态的路灯的最大个数。若两种状态的路灯数量相同,则返回最先出现的路灯状态。
输入
街道上连续的路灯组成的状态字符串。字符串中只包含数字,每个路灯的状态为0,1,2中的一种状态。如“1101”代表4盏路灯,第3盏路灯为熄灭状态,其它3盏为开启状态。
输出
连续为相同状态的路灯的最大数量;
上述路灯的状态;
要求:先输出数量,再输出状态,两个整数间采用一个空格间隔。如输出:
53 2
样例输入
112200111
样例输出
3 1
public static String statisticOccurMaxCountDigit(String input){char[] c=input.toCharArray();Stack<Character> stack=new Stack<Character>();for(int i=c.length-1;i>=0;i--){stack.push(c[i]);}LinkedHashMap<Character,Integer> lhm=new LinkedHashMap<Character,Integer>();int count=0;while(!stack.isEmpty()){char ch=stack.pop();count++;if(!stack.isEmpty()){if(stack.peek()!=ch){saveStateAndCount(lhm, count, ch);//记录状态和次数count=0;}}else{saveStateAndCount(lhm, count, ch);}}List<Map.Entry<Character,Integer>> list=new ArrayList<Map.Entry<Character,Integer>>(lhm.entrySet());Collections.sort(list, new Comparator<Map.Entry<Character,Integer>>(){@Overridepublic int compare(Entry<Character, Integer> o1,Entry<Character, Integer> o2) {return o2.getValue()-o1.getValue();//降序}});return String.valueOf(list.get(0).getValue())+","+String.valueOf(list.get(0).getKey());}private static void saveStateAndCount(LinkedHashMap<Character, Integer> lhm, int count, char ch) {if(lhm.containsKey(ch)){if(lhm.get(ch)<count){lhm.remove(ch);lhm.put(ch, count);}}else{lhm.put(ch, count);}}
- 2013华为杯编程大赛成都第三组试题及答案
- 2013华为杯编程大赛成都第三组试题--------题目 A: 路灯统计
- 2013华为杯编程大赛成都第三组试题--------C 连连看-判断两个图案是否可以消去
- 2013华为编程大赛成都第三组 求复数的平均值
- 2013华为编程大赛成都第三组 求复数的平均值
- 2012 华为编程大赛 成都地区
- 第三届华为编程大赛【C语言试题】
- 2013 华为编程大赛java组初赛试题
- 2013华为编程大赛初赛出试题
- 2011华为编程大赛初赛成都赛区试题(c语言b卷)
- 程序设计大赛试题及答案
- 2013华为第五届编程大赛 成都初赛题目和解答
- 华为面试题及答案
- 华为面试题及答案
- 华为面试题及答案
- 2012华为编程大赛第三题
- 2011华为编程大赛第三道题
- 一道华为编程大赛的试题
- HDU 1051 Wooden Sticks
- [转载]MyEclipse8.5 Hibernate反向工程步骤及DAO Type
- 在只有JRE的环境下使用BTrace
- struct stat 的用法
- VC简单画图
- 2013华为杯编程大赛成都第三组试题及答案
- HDU 4708 Rotation Lock Puzzle (热身赛第三题)
- Annotation学习入门的几篇文章
- 大数加法
- hdu 4707 Pet
- SRM 590 DIV1
- Java序列化的作用和反序列化
- 宏与内联(inline)的区别
- Linux多线程服务端编程(笔记2)