这是一道坑爹的题目,为什么这么说,且看我慢慢分析……

题目例如以下:

给出一个名字,该名字有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()又一次提交,居然就对了。!

!!

——这么大一个公司,做事情到了如此不认真的地步,我也真是醉了……

标记为原创的博文均为本人辛苦码字所得,谢绝抄袭。转载请注明出处,新浪微博私信艾特:物联网project_Niegang。

华为OJ 名字美丽度的更多相关文章

  1. 华为OJ:火车进站

    火车进站 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号. 输入描述: 有多组测试用例, ...

  2. 在华为oj的两个月

    一次偶然的机会,我接触到华为oj平台(http://career-oj.huawei.com/exam/camLogin.jsp),当时的心情很是兴奋,于是立马注册开通,然后迫不及待地上去做题.刚开始 ...

  3. 常用OJ名字+地址(自用)

    常用OJ名字+地址 不定期更新,自己用,有补充的也可以给我说说哈. 中文 openjudge 地址:openjudge.cn 说明:北大提供的一个平台,学校可申请小组: 比较好的小组: 计算概论:ic ...

  4. 华为OJ平台——计算字符串的相似度

    题目描述: 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把“a”替换为“b”. 2 增加一个字符,如 ...

  5. 华为OJ题目:刷题

    题目描述: 新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题.每天, ...

  6. 华为OJ平台——字符串分隔

    题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...

  7. 华为OJ平台——输出最小的k个数

    输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...

  8. 华为oj 购物单

    这两天断断续续敲完这个(放假的时候比较懒),一次成功有点小激动(●'◡'●)  不过貌似从第一次打开开始计时..... 这道题目很像01背包,我将附件与它们的主件绑定(就是link起来)然后套用动态规 ...

  9. 华为oj 刷题记录之合唱团

    华为OJ-合唱队 描述 计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队 ...

随机推荐

  1. Bootstrap-datepicker 用法

    <div class="input-group input-daterange"> <input type="text" id="s ...

  2. 【CCF】商路

    [60分] #include<iostream> #include<cstdio> #include<cstring> #include<string> ...

  3. bzoj 4007 树形dp

    题目大意 脸哥最近来到了一个神奇的王国,王国里的公民每个公民有两个下属或者没有下属,这种关系刚好组成一个 n 层的完全二叉树.公民 i 的下属是 2 * i 和 2 * i +1.最下层的公民即叶子节 ...

  4. 文本生成器(bzoj 1030)

    Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...

  5. ObjectDataSource配置数据源的时候,选择业务对象下拉菜单没有任何东西

    原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 问题:在App_Code这个文件夹中添加了一个类,然后保存,但是在ObjectDataSource配置数据源的时候 ...

  6. vue-cli脚手架每行注释--摘抄

    .babelrc文件 { // 此项指明,转码的规则 "presets": [ // env项是借助插件babel-preset-env,下面这个配置说的是babel对es6,es ...

  7. unity3d自动寻路教程

    U3D的自动寻路插件是不少,但是其实U3D的PRO版本就提供了相当实用的自动寻路组件了,以下教程分别讲解自动寻路的路径选择优先,上楼梯跳下的条件判断等等实用方法,教程分三编,但这个教程没有讲到Navm ...

  8. centos 目录

    http://www.iteye.com/topic/1125162 使用linux也有一年多时间了  最近也是一直在维护网站系统主机  下面是linux目录结构说明 本人使用的是centos系统,很 ...

  9. AGC006

    AtCoder Grand Contest 006 <br > 心血来潮,开了一套AGC..... 然后发现各种不会做.........感觉智商被AGC摁在地上摩擦...... <b ...

  10. Maven修改默认本地资源库文件夹

    默认的Maven地址如下: Linux/Mac:~/.m2(提示:~/为当前用户目录地址) Widnows:C:\Users\{username}\.m2(提示:username为当前用户名) 修改操 ...