HashMap
class Solution {
public List<String> subdomainVisits(String[] cpdomains) {
Map<String, Integer> map = new HashMap<>();
for (String cpdomain : cpdomains) {
String[] info = cpdomain.split(" ");
int count = Integer.valueOf(info[0]);
String[] frags = info[1].split("\\.");
String cur = "";
for (int i = frags.length - 1; i >= 0; i--) {
cur = frags[i] + (i == frags.length - 1 ? "" : ".") + cur;
int curCount = map.getOrDefault(cur, 0) + count;
map.put(cur, curCount);
}
}
List<String> res = new ArrayList<>();
for (String domain : map.keySet()) {
res.add(map.get(domain) + " " + domain);
}
return res;
}
}