class Solution {
public List<String> subdomainVisits(String[] cpdomains) {
List<String> result = new ArrayList();
Map<String,Integer> domainMap = new HashMap();
if(cpdomains == null || cpdomains.length == 0)
return result;
for(String domain : cpdomains) {
String[] cpdomain = domain.split(" ");
int times = Integer.valueOf(cpdomain[0]);
String domainName = cpdomain[1];
domainMap.put(domainName, domainMap.getOrDefault(domainName,0) + times);
while(domainName.contains(".")) {
domainName = domainName.substring(domainName.indexOf(".")+1);
domainMap.put(domainName, domainMap.getOrDefault(domainName,0) + times);
}
}
for(Map.Entry<String,Integer> entry : domainMap.entrySet()) {
result.add(entry.getValue() + " " + entry.getKey());
}
return result;
}
}