思路:
遍历数组中所有字符串,将每个字符串进行map映射,统计次数,最终转化为list.
class Solution { public List<String> subdomainVisits(String[] cpdomains) { Map<String,Integer> res=new HashMap<String,Integer>(); for(String str:cpdomains){ int count=Integer.parseInt(str.split(" ")[0]); String domain=str.split(" ")[1]; String[] domains=domain.split("\\."); String tmp_domain=""; for(int i=domains.length-1;i>=0;i--){ tmp_domain=domains[i]+(tmp_domain.equals("")?tmp_domain:"."+tmp_domain); if(!res.containsKey(tmp_domain)){ res.put(tmp_domain,count); } else{ res.put(tmp_domain,res.get(tmp_domain)+count); } } } List result=new ArrayList<String>(); for(String key:res.keySet()){ result.add(res.get(key)+" "+key); } return result; } }