华为OJ 名字漂亮度
来源:互联网 发布:lol网络不稳定断开连接 编辑:程序博客网 时间:2024/06/12 01:48
这是一道坑爹的题目,为什么这么说,且看我慢慢分析……
题目如下:
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
输入:
整数N,后面N个名字,如
2 zhangsan lisi
输出:
每个名字对应的最大漂亮程度
如:192 101
题目分析:
这道题目乍一看,挺厉害的!但是一分析就发现这其实就是求一个字符串中每个字符的出现次数,为了获得最大的漂亮度那么必须让出现次数最多的字符漂亮度为26,依次递减往下。
有了解题思路,直接上代码,代码如下,Java实现
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int N=scanner.nextInt(); String[] names=new String[N]; Main main=new Main(); for (int i = 0; i < N; i++) { names[i]=scanner.next(); System.out.println(main.beautyfulNames(names[i]));//为何是System.out.println(),后面解释 } scanner.close(); } public int beautyfulNames(String name){ char[] c=name.toCharArray(); Map<Character, Integer> map=new HashMap<Character,Integer>(); for (int i = 0; i < c.length; i++) { if (map.containsKey(c[i])) { map.put(c[i], map.get(c[i])+1); }else { map.put(c[i], 1); } } List<Map.Entry<Character, Integer>> list=new ArrayList<Map.Entry<Character,Integer>>(map.entrySet()); //Collections.sort重载方法来实现排序 Collections.sort(list,new Comparator<Map.Entry<Character, Integer>>() { public int compare(Map.Entry<Character, Integer> o1,Map.Entry<Character, Integer> o2){ return o2.getValue().compareTo(o1.getValue());//降序排列// return o1.getValue().compareTo(o2.getValue());//升序排列 } }); int result=0; for (int i = 0; i < list.size(); i++) { result=result+list.get(i).getValue()*(26-i); } return result; }}
看到我的这段代码,你肯定会说这么输出是不对的,因为题目给的输出实例中明显是都在一行……但是我告诉你这么是对的,这就是我说这道题坑爹的原因所在。我第一提交的时候用的是System.out.print(),然后直接就提示说“格式错误”,不死心,我又提交第二次,依旧“格式错误”,后来我抱着试试看的态度使用System.out.println()重新提交,竟然就对了!!!!——这么大一个公司,做事情到了如此不认真的地步,我也真是醉了……
标记为原创的博文均为本人辛苦码字所得,谢绝抄袭,转载请注明出处,新浪微博私信艾特:物联网工程_Niegang。
0 0
- 华为OJ 名字漂亮度
- 华为oj-名字漂亮度
- 华为oj 名字漂亮度
- 华为oj-名字的漂亮度
- 华为OJ测试--名字的漂亮度
- 华为OJ(名字漂亮度)
- 华为OJ 名字的漂亮度
- 华为OJ 名字的漂亮度
- 华为oj:名字的漂亮度
- 华为oj名字的漂亮度
- 华为OJ:名字的漂亮度
- 华为OJ-名字的漂亮度
- 华为OJ 名字的漂亮度
- 【华为OJ】【033-名字的漂亮度】
- [华为OJ] 名字的漂亮度
- 【华为OJ】名字的漂亮度
- 华为OJ 初级:名字的漂亮度
- 华为OJ 名字的漂亮度
- OC_SingleTon(单例)
- HTTPie: a CLI, cURL-like tool for humans
- Frame可视化调用的顺序问题
- introduce-kafka
- 记一次服务器被恶意攻击的情况
- 华为OJ 名字漂亮度
- linux设置dhcp中继代理
- Android view利用canvas绘制动画(一)
- 【1】依照Django官网,编写一个web app 创建工程/配置数据库
- Android 开源项目分类汇总
- JStorm中消息确保处理机制
- Spring3.0+Struts2.2+Hibernate3.6整合与常见问题
- 负载均衡方案总结
- Android Studio导入第三方类库的方法