题目描述:给定一个带访问次数和域名的组合,要求分别计算每个域名被访问的次数。其格式为访问次数+空格+地址,例如:
“9001 discuss.leetcode.com”。
//子域名访问计数
import java.util.*;
public class Solution {
public static List<String> subdomainVisits(String[] cpdomains){
Map<String,Integer> map = new HashMap<>();
for(String cpdomain : cpdomains){
String[] a = cpdomain.split(" ");
int n = Integer.valueOf(a[0]);
String domain = a[1];
String[] b = domain.split("\\.");
for(int i = 0;i < b .length;i++){
String[] c = Arrays.copyOfRange(b,i,b.length);
String dom = String.join(".",c);//String的静态方法
int oldCount = map.getOrDefault(dom,0);
map.put(dom,oldCount + n);
List<String> ret = new ArrayList<>();
for(Map.Entry<String,Integer> e: map.entrySet()){
String domain = e.getKey();
int n = e.getValue();
String s = String.format("%d %s",n,domain);
ret.add(s);
}
return ret;
}
public static void main(String[] args) {
List<String> r = new ArrayList<>();
String[] cp ={"900 google.mail.com","1 intel.mail.com","5 viki.org"};
r = subdomainVisits(cp);
System.out.println(r);
}
}
运行结果: