博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
名字的漂亮度
阅读量:5276 次
发布时间:2019-06-14

本文共 2557 字,大约阅读时间需要 8 分钟。

题目如下: 

给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。 
给出多个名字,计算每个名字最大可能的“漂亮度”。 
输入: 
整数N,后面N个名字,如 
2 zhangsan lisi 
输出: 
每个名字对应的最大漂亮程度 
如:192 101

分析:名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的(忽略大小写)+....+1*出现次数最小的。

要从以下几点入手:

1.统计字符的个数

2.升序排列或降序排列

3.计算漂亮度

知识点:

1.使用Scanner类输入数据

  (1)public String next() :接收键盘输入的内容(注意如果带空格,只能取出空格之前的数据)

  (2)public int nextInt() :接收键盘输入的数字

  (3)public boolean hasNextXxx() :判断输入的是int型还是float型。hasNextInt(),hasNextfloat()。

2.toCharArray(),只能针对字符串有这个方法,Scanner类是没有这种方法的

3.关于Map接口,要想使用此接口,必须依靠子类实例化

如:Map<Character,Integer> map=new HashMap<Character,Integer>();

  Map接口中的方法:

  public boolean containsKey(Object key);判断集合中是否存在指定的key

  public boolean containsValue(Object value);判断集合中是否存在指定的value

  put(key,value);向集合中增加内容

  get(key);根据key找出对应的value

  public static interface Map.Entry<K,V>接口专门用来保存key->value的内容,之后可以用getKey()和getValue()进行key与value的分离

  Map.Entry接口中的方法:

  public K getKey();取得key

  public V getValue();取得value

  关于entrySet()方法,能够将Map集合中的映射关系取出,存入Set集合中

如:Set<Map.Entry<String,String>> set=map.entrySet();

  关于Collections类中的sort()方法

  sort()方法可以对集合进行排序,但要求集合中每个对象所在的类必须实现Comparable接口。而且要把对象传进去

  String类本身已经实现好了Comparable接口。如果是一个自定义的类,一定要实现Comparable接口。

  如:Collections.sort(list,new StrLenComparator());

  class StrLenComparator implements Comparator<String>
    {
   
   public int compare(String s1,String s2)
         {
        if (s1.length()>s2.length())
        {
            return 1;
         }
        if (s1.length()<s2.length())
        {
            return -1;
        }
   
     return s1.compareTo(s2);
//如果字符串长度相同,就按自然顺序排。
        }
    }

 

import java.util.ArrayList;  import java.util.Arrays;  import java.util.Scanner;  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 static class TestBeauty2{	public static void main(String[] args) {		Scanner cin=new Scanner(System.in);		int N=cin.nextInt();/*接收键盘输入的数字,就是表示有几个字母,即有几个字符串*/		String[] names=new String[N];//构建字符串数组		TestBeauty2 tb=new TestBeauty2();		for(int i=0;i
map=new HashMap
();//要想使用Map接口,必须依靠子类实例化 for(int i=0;i
> list=new ArrayList
>(map.entrySet()); Collections.sort(list,new Comparator
>(){ public int compare(Map.Entry
o1,Map.Entry
o2){ return o2.getvalue().compareTo(o1.getvalue());//按自然排序,降序 } }); //计算漂亮度=26*字母数最多的+25*次多的+... int result=0; for(int i=0;i

  

转载于:https://www.cnblogs.com/GumpYan/p/5816317.html

你可能感兴趣的文章
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>
Ztree异步树加载
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>