# leetcode-811-Subdomain Visit Count

### 题目描述：

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.

### 要完成的函数：

vector<string> subdomainVisits(vector<string>& cpdomains)

### 说明：

2、题意清晰，这道题就是一道工程题，比较适合用python来写脚本。

```    vector<string> subdomainVisits(vector<string>& cpdomains)
{
unordered_map<string, int>m1;
int i,n;//i表示空格位置，n表示出现次数
string s;//取出的网址
for(auto word:cpdomains) //使用auto方便很多
{
i=word.find(" ");
n=stoi(word.substr(0,i)); //stoi函数转换string到int
s=word.substr(i+1,word.size()-i-1);
for(int i=s.size()-1;i>=0;i--) //逐个处理
{
if(s[i]=='.')
m1[s.substr(i+1,s.size()-i-1)]+=n;
else if(i==0)
m1[s.substr(i,s.size()-i)]+=n;
}
}
vector<string>res;
for(auto element:m1)
res.push_back(to_string(element.second)+" "+element.first);
return res;
}```

0 条评论

## 相关文章

### 【笔记】web前端零基础课0904_学习笔记

JavaScript，它的运行必须位于<script></script>标签之间，

8820

### 小朋友学C语言（34）：main函数的参数

C/C++中的main()函数，可以带形式参数，也可以不带形式参数。这两种形式分别为： 1）int main() 2）int main(int argc, ch...

31160

### Python笔记·第一章——Python基础（一）

Python的简介 1、Python的由来与版本 1.1 python的由来 python的创始人为吉多·范罗苏姆（Guido van Rossum）。1989...

24070

### 深度解析Java多线程的内存模型内部java内存模型硬件层面的内存模型Java内存模型和硬件内存模型的联系小结

Java内存模型很好的说明了JVM是如何在内存里工作的，JVM可以理解为java执行的一个操作系统，作为一个操作系统就有内存模型，这就是我们常说的JAVA内存模...

8010

48660

11520

### 在c#中，如何序列化/反序列化一个字典对象？

.Net提供的各种序列化的类，通过使用这些类，. Net对象的序列化和反序列化变得很容易。但是字典对象的序列化并不是那么容易。为此，您必须创建一个能够序列化自身...

12810

17920

30850

36350