博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
811. Subdomain Visit Count
阅读量:5925 次
发布时间:2019-06-19

本文共 2706 字,大约阅读时间需要 9 分钟。

题目描述:

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.
Example 2: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.

Notes:

  • The length of cpdomains will not exceed 100
  • The length of each domain name will not exceed 100.
  • Each address will have either 1 or 2 "." characters.
  • The input count in any count-paired domain will not exceed 10000.
  • The answer output can be returned in any order.

解题思路:

题目不难,使用一个map即可记录每个domain的访问次数。

代码:

1 class Solution { 2 public: 3     vector
subdomainVisits(vector
& cpdomains) { 4 unordered_map
res; 5 vector
ans; 6 for (auto str : cpdomains) { 7 size_t index = str.find(" "); 8 int num = stoi(str.substr(0, index)); 9 str = str.substr(index+1);10 while (str.find(".") != string::npos) {11 res[str] += num;12 str = str.substr(str.find(".") + 1);13 }14 res[str] += num;15 }16 ans.reserve(res.size());17 for (auto iter = res.begin(); iter != res.end(); ++iter) {18 ans.push_back(to_string(iter->second) + " " + iter->first);19 }20 return ans;21 }22 };

 

转载于:https://www.cnblogs.com/gsz-/p/9451249.html

你可能感兴趣的文章
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
$resource in AngularJS
查看>>
初探django-使用uwsgi+supervisor+nginx来部署服务
查看>>
java虚拟机学习笔记 【1】
查看>>
DUBBO笔记
查看>>
nginx php上传大文件的设置(php-fpm)
查看>>
MySQL 运行状态监控方法
查看>>
Fedora 12 环境下Gtk+开发环境配置
查看>>
vs2008中在解决方案资源管理器查看当前打开文件
查看>>
ubuntu14.04 鼠标闪烁问题
查看>>
jQuery Lightbox(balupton版)图片展示插件demo
查看>>
Elasticsearch集群的简单搭建
查看>>
SCRT-SSH传输文件
查看>>
Python非常cool的svg格式chart生成库pygal
查看>>
Telnet部署与启动 windows&&linux
查看>>
行列式的乘法定理
查看>>