July 16, 2022

811. Subdomain Visit Count

811. Subdomain Visit Count

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;
    }
}
comments powered by Disqus