亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

2016 年亞太地區 A 輪測試國家領導人

2016 年亞太地區 A 輪測試國家領導人

忽然笑 2022-07-27 11:21:03
我正在嘗試使用 Google APAC Question進行練習,但提交的內容說我的解決方案不正確。某個國家的憲法規定,領導人是姓名中包含最多不同字母的人。(該國家/地區使用從 A 到 Z 的大寫英文字母。)例如,名稱 GOOGLE 有四個不同的字母:E、G、L 和 O。名稱 APAC CODE JAM 有八個不同的字母。如果這個國家只有這兩個人,APAC CODE JAM 將是領導者。如果出現平局,則按字母順序姓名最早的人是領導者。給定一個國家公民的名單,你能確定誰是領導者嗎?我不明白為什么我的提交會導致錯誤的答案。你能指出我在哪里犯了錯誤嗎?對于改進我的解決方案的任何反饋,我也將不勝感激。提前謝謝了。import java.io.*;import java.util.*;public class CountryLeader {    public static void main(String[] args) {            Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));        int t = in.nextInt();        in.nextLine();        for (int i = 1; i <= t; ++i) {            int n = in.nextInt();            in.nextLine();            List<String> names = new ArrayList<String>();            for (int j = 0; j < n; ++j) {                names.add(in.nextLine());            }//            System.out.println(names);            System.out.println("Case #" + i + ": " + findLeader(names));        }    }    public static String findLeader(List<String> names) {             String leader = "";        int maxCount = 0;        for (String name : names) {            String current = name.replaceAll(" ","");;            char[] charArr = current.toCharArray();            int counter = 0;            Map<Character, Boolean> charMap = new HashMap<Character, Boolean>();            for (Character ch : charArr) {                if (charMap.containsKey(ch))  {                   continue;                 } else {                    charMap.put(ch, true);                    counter++;                 }            }            if (maxCount < counter) {                leader = name;                maxCount = counter;            }        }        return leader;    }}
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

如果兩個字符串包含相同數量的不同字符,您忘記檢查字母順序。這可以通過在 中添加額外的 - 子句來相當容易地if糾正findLeader:


if (maxCount < counter) {

    leader = name;

    maxCount = counter;

} else if(maxCount == counter && name.compareTo(leader) < 0) {

    // same number of distinct character => lexicographical ordering

    leader = name;

    maxCount = counter;

}


查看完整回答
反對 回復 2022-07-27
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號