生活随笔
收集整理的這篇文章主要介紹了
华为OJ 名字美丽度
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這是一道坑爹的題目,為什么這么說(shuō),且看我慢慢分析……
題目例如以下:
給出一個(gè)名字,該名字有26個(gè)字符串組成,定義這個(gè)字符串的“美麗度”是其全部字母“美麗度”的總和。
每一個(gè)字母都有一個(gè)“美麗度”。范圍在1到26之間。沒(méi)有不論什么兩個(gè)字母擁有同樣的“美麗度”。字母忽略大寫(xiě)和小寫(xiě)。
給出多個(gè)名字。計(jì)算每一個(gè)名字最大可能的“美麗度”。
輸入:
整數(shù)N。后面N個(gè)名字,如
2 zhangsan lisi
輸出:
每一個(gè)名字相應(yīng)的最大美麗程度
如:192 101
題目分析:
這道題目乍一看,挺厲害的。可是一分析就發(fā)現(xiàn)這事實(shí)上就是求一個(gè)字符串中每一個(gè)字符的出現(xiàn)次數(shù),為了獲得最大的美麗度那么必須讓出現(xiàn)次數(shù)最多的字符美麗度為26,依次遞減往下。
有了解題思路。直接上代碼,代碼例如以下,Java實(shí)現(xiàn)
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]));}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(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());
}});
int result=
0;
for (
int i =
0; i < list.size(); i++) {result=result+list.get(i).getValue()*(
26-i);}
return result;}}
看到我的這段代碼。你肯定會(huì)說(shuō)這么輸出是不正確的,由于題目給的輸出實(shí)例中明顯是都在一行……可是我告訴你這么是對(duì)的,這就是我說(shuō)這道題坑爹的原因所在。我第一提交的時(shí)候用的是System.out.print()。然后直接就提示說(shuō)“格式錯(cuò)誤”,不死心,我又提交第二次。依然“格式錯(cuò)誤”,后來(lái)我抱著試試看的態(tài)度使用System.out.println()又一次提交,居然就對(duì)了。!
!!
——這么大一個(gè)公司,做事情到了如此不認(rèn)真的地步,我也真是醉了……
標(biāo)記為原創(chuàng)的博文均為本人辛苦碼字所得,謝絕抄襲。轉(zhuǎn)載請(qǐng)注明出處,新浪微博私信艾特:物聯(lián)網(wǎng)project_Niegang。
轉(zhuǎn)載于:https://www.cnblogs.com/jhcelue/p/7225589.html
總結(jié)
以上是生活随笔為你收集整理的华为OJ 名字美丽度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。