Subdomain Visit Count_count,subdomain-程序员宅基地

技术标签: hashmap  

A website domain like "discuss.leetcode.com" consists of various subdomains. At the top level, we have "com", at the next level, we have "leetcode.com", and at the lowest level, "discuss.leetcode.com". When we visit a domain like "discuss.leetcode.com", we will also visit the parent domains "leetcode.com" and "com" implicitly.

Now, call a "count-paired domain" to be a count (representing the number of visits this domain received), followed by a space, followed by the address. An example of a count-paired domain might be "9001 discuss.leetcode.com".

We are given a list cpdomains of count-paired domains. We would like a list of count-paired domains, (in the same format as the input, and in any order), that explicitly counts the number of visits to each subdomain.

Example 1:
Input: 
["9001 discuss.leetcode.com"]
Output: 
["9001 discuss.leetcode.com", "9001 leetcode.com", "9001 com"]
Explanation: 
We only have one website domain: "discuss.leetcode.com". As discussed above, 
the subdomain "leetcode.com" and "com" will also be visited. So they will all be visited 9001 times.
Input: 
["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
Output: 
["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
Explanation: 
We will visit "google.mail.com" 900 times, "yahoo.com" 50 times, "intel.mail.com" once and "wiki.org" 5 times. 
For the subdomains, we will visit "mail.com" 900 + 1 = 901 times, "com" 900 + 50 + 1 = 951 times, and "org" 5 times.

思路:就是一个split domain 用hashmap统计的过程;注意split 用 . 必须用 split("\\.");

class Solution {
    public List<String> subdomainVisits(String[] cpdomains) {
        List<String> list = new ArrayList<String>();
        HashMap<String, Integer> hashmap = new HashMap<>();
        for(String str: cpdomains) {
            build(hashmap, str);
        }
        // domain , fre;
        for(String domain: hashmap.keySet()) {
            list.add(hashmap.get(domain) + " " + domain);
        }
        return list;
    }
    
    private void build(HashMap<String, Integer> hashmap, String cpdomain) {
        String[] splits = cpdomain.split(" ");
        String frestr = splits[0];
        String domain = splits[1];
        Integer fre = Integer.parseInt(frestr);
        String[] domainsplits = domain.split("\\.");
       
        for(int i = 0; i < domainsplits.length; i++) {
            StringBuilder sb = new StringBuilder();
            for(int j = i; j < domainsplits.length; j++) {
                sb.append(domainsplits[j] + ".");
            }
            String key = sb.toString().substring(0, sb.length() - 1);
            hashmap.put(key, hashmap.getOrDefault(key, 0) + fre);
        }
    }
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013325815/article/details/105876811

智能推荐

elasticsearch使用head插件打开和关闭索引_elasticsearch关闭索引刷新-程序员宅基地

文章浏览阅读1.1k次。 接着上一节的内容,这一讲着重介绍下elasticsearch使用head打开和关闭索引.....打开/关闭索引接口允许关闭一个打开的索引或者打开一个已经关闭的索引。关闭的索引只能显示索引元数据信息,不能够进行读写操作。关闭索引的两种方式,第一种是比较low的操作,不建议使用........比如我们新建一个索引student2第一种:关闭索引:我们用 PO..._elasticsearch关闭索引刷新

Verilog CIC 滤波器设计(代码自取)_cic截止频率-程序员宅基地

文章浏览阅读4.9k次,点赞21次,收藏179次。前言:积分梳状滤波器(CIC,Cascaded Integrator Comb),一般用于数字下变频(DDC)和数字上变频(DUC)系统。CIC 滤波器结构简单,没有乘法器,只有加法器、积分器和寄存器,资源消耗少,运算速率高,可实现高速滤波,常用在输入采样率最高的第一级,在多速率信号处理系统中具有着广泛应用。1. DDC 原理DDC 主要由本地振荡器(NCO) 、混频器、滤波器等组成,如下图所示。DDC 将中频信号与振荡器产生的载波信号进行混频,信号中心频率被搬移,再经过抽取滤波,恢复原始信号,实现_cic截止频率

经典算法详解(3)将大于2的偶数分解成两个素数之和-程序员宅基地

文章浏览阅读1.3k次。1 #include<iostream> 2 3 using namespace std; 4 5 bool isPrime(int n) { 6 for (int i = 2; i < n; i++) { 7 if (n%i == 0) { //能被2到把自身小1的数整除的都不是素数 8 ..._分解偶数描述任何一个大于2的偶数都可以分解为两个素数的和,而且可能有多种分

matlab做比例积分微分控制,收放卷卷径计算+闭环摆杆控制参数自适应PID控制算法(变比例变积分变微分)介绍...-程序员宅基地

文章浏览阅读2.3k次,点赞3次,收藏22次。项目简介最近在一个客户现场搞熔边机项目,涉及到收放卷工艺的卷径计算,同时张力控制使用的是摆杆,然后通过PID控制输出辅助转速补偿收卷伺服速度。单一的PID参数不能自动适应卷径变化,如在小卷径200mm下调试整定出的一组PID参数,当收卷卷径大于300mm的时候该组参数就不能稳定,系统会发散。于是想出了本篇文章将要为大家介绍的变比例变积分变微分自适应PID控制器。硬件介绍上图1为位置传感器,图中2部..._卷径控制

斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇_n1 /v1/keyevent-程序员宅基地

文章浏览阅读2.9w次,点赞2次,收藏18次。转转上买来的斐讯n1天天链,刷了webpad官改系统当电视盒子用,在手机上安装斐讯官方的遥控app后,可以替代实体遥控器,实现遥控电视盒子的功能,少掏30-40购买遥控器的钱。但是美中不足的是,盒子一旦关机就无法开机,必须重新插拔电源才能开机,很不方便。于是开始研究如何用软件遥控盒子开关机的办法。n1没有红外功能,所以遥控器一般都是通过蓝牙或者wifi来连接的。由于手上没有t1遥控器,不清楚使..._n1 /v1/keyevent

SpringBoot集成ACM(应用配置管理)_springboot acm-程序员宅基地

文章浏览阅读1.8k次。一、概述1、什么是应用配置?在程序开发过程中,我们通常将程序中需要变更的一些配置项或者元数据(比如数据库配置、文件地址等)从代码中分离出来,放在单独的配置文件中进行管理,我们称这些配置文件为应用配置。2、传统架构的配置管理在传统架构中,如果配置信息有变更,通常需要登录服务器并手动修改配置来使配置生效,如下图。3、ACM 配置管理应用配置管理 ACM 是一款在分布式架构环境中对应用配置..._springboot acm

随便推点

Beyond Compare文件比对_beyond compare 4.2 密钥-程序员宅基地

文章浏览阅读3.2k次。Beyond Compare_beyond compare 4.2 密钥

第一章:初探Spring Cloud Config配置集中管理_springcloud 集中配置管理-程序员宅基地

文章浏览阅读1.5k次。前路艰难,但谨记,你并不孤独。Spring Cloud如火如荼,抽空研究研究Spring大家族中的新份子。具体的介绍不会粗线在本系列博文中,如需要理论等知识直接百度or谷歌。Spring Cloud中保护N多已构建好的微服务,可以做到即插即用,其中大致包含几种服务:Config、Eureka、Ribbon、Hystrix、Feign、Bus等,具体介绍及开源地址请见:Spring Cloud中文官_springcloud 集中配置管理

leetcode647. 回文子串_leetcode 647-程序员宅基地

文章浏览阅读116次。题目大意给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".解题思路动态规划,判断s[i]~s[j]是否是回文串,如果是回文串,res++。class Solution {_leetcode 647

Akka中Actor消息通信的实现原理(源码解析)_actor mailbox 实现原理-程序员宅基地

文章浏览阅读4.4k次。Akka中通过下面的方法向actor发送消息! tell 意味着 “fire-and-forget”,即异步的发送消息无需等待返回结果? ask 异步发送消息并返回代表可能回复的Future。消息在每个发件人的基础上是有序的。MailBoxAkka邮箱包含发往Actor的消息。通常每个Actor都有自己的邮箱,但是也有例外,比如BalancingPool所有路由将共享_actor mailbox 实现原理

安卓ListView的使用_android listview使用-程序员宅基地

文章浏览阅读1.1k次。listview是一个以垂直方式在项目中显示视图的列表。是一种不能实现确定视图中的内容的适配器视图(adapter view)。数据和视图的绑定,需要通过继承ListViewAdapter接口的适配器实现。确保当上下滚动的时候,能够动态刷新视图内容。通常我们都会自定义一个继承自BaseAdapter(已继承ListViewAdapter),ArrayAdapter(继承自BaseAdapter),SimpleAdapter(继承自BaseAdapter)的类,重写getView()方法,实现自己想要的功能。_android listview使用

全屏模式fullscreen_fullscreen error-程序员宅基地

文章浏览阅读1.3w次。全屏模式fullscreen_fullscreen error

推荐文章

热门文章

相关标签