这题主要难在构建关联容器,方法很多,但是核心都是把原字符串一截一截减下来处理,先把前面用空格隔开的次数转化为整数,然后处理后面的多层子域。

方法一,查找标志字符,用标志字符把字符串分成几段

  1. static int wing=[]()
  2. {
  3. std::ios::sync_with_stdio(false);
  4. cin.tie(NULL);
  5. return ;
  6. }();
  7.  
  8. class Solution
  9. {
  10. public:
  11. vector<string> subdomainVisits(vector<string>& cpdomains)
  12. {
  13. unordered_map<string,int> simap;
  14. for(string &s:cpdomains)
  15. {
  16. int i=s.find(" ");
  17. int times=stoi(s.substr(,i));
  18. string ss=s.substr(i+,s.size()-i-);
  19. simap[ss]+=times;
  20. int sssz=ss.size();
  21. for(int i=;i<sssz;i++)
  22. {
  23. if(ss[i]=='.')
  24. simap[ss.substr(i+,sssz-i-)]+=times;
  25. }
  26. }
  27. vector<string>res;
  28. for(auto &p:simap)
  29. res.push_back(to_string(p.second)+" "+p.first);
  30. return res;
  31. }
  32. };

方法二,用stringstream

  1. static int wing=[]()
  2. {
  3. std::ios::sync_with_stdio(false);
  4. cin.tie(NULL);
  5. return ;
  6. }();
  7.  
  8. class Solution
  9. {
  10. public:
  11. vector<string> subdomainVisits(vector<string>& cpdomains)
  12. {
  13. unordered_map<string,int> simap;
  14. for(string &s:cpdomains)
  15. {
  16. stringstream ss;
  17. int cnt=;
  18. string dom;
  19. ss<<s;
  20. ss>>cnt>>dom;
  21. simap[dom]+=cnt;
  22. int sz=dom.size();
  23. for(int i=;i<sz;i++)
  24. {
  25. if(dom[i]=='.')
  26. simap[dom.substr(i+,sz-i-)]+=cnt;
  27. }
  28. }
  29. vector<string> res;
  30. for(auto &p:simap)
  31. res.push_back(to_string(p.second)+" "+p.first);
  32. return res;
  33. }
  34. };

用stringstream的方法速度要慢一些

811. Subdomain Visit Count的更多相关文章

  1. 【Leetcode_easy】811. Subdomain Visit Count

    problem 811. Subdomain Visit Count solution: class Solution { public: vector<string> subdomain ...

  2. 811. Subdomain Visit Count - LeetCode

    Question 811. Subdomain Visit Count Example 1: Input: ["9001 discuss.leetcode.com"] Output ...

  3. LeetCode 811 Subdomain Visit Count 解题报告

    题目要求 A website domain like "discuss.leetcode.com" consists of various subdomains. At the t ...

  4. [LeetCode&Python] Problem 811. Subdomain Visit Count

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  5. 【LeetCode】811. Subdomain Visit Count 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典统计次数 日期 题目地址:https://lee ...

  6. LeetCode 811. Subdomain Visit Count (子域名访问计数)

    题目标签:HashMap 题目给了我们一组域名,让我们把每一个域名,包括它的子域名,计数. 遍历每一个域名,取得它的计数,然后把它的所有子域名和它自己,存入hashmap,域名作为key,计数作为va ...

  7. 811. Subdomain Visit Count (5月23日)

    解答 class Solution { public: vector<string> subdomainVisits(vector<string>& cpdomains ...

  8. [Swift]LeetCode811. 子域名访问计数 | Subdomain Visit Count

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  9. [LeetCode] Subdomain Visit Count 子域名访问量统计

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

随机推荐

  1. FormData的使用

    var formData = new FormData(); <form id="coords" class="coords" onsubmit=&quo ...

  2. 牛客网Wannafly挑战赛15 B车辆安排(模拟)AND C 出队(规律)

    传送门 :B题:点我 C题: 点我 题目描述 有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数 输入描述: 第一行n第二行n个数,表示每个队伍的人数 ...

  3. 203. Remove Linked List Elements (List)

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  4. springMVC项目部署 服务器启动spring容器报错bean未从类加载器中找到

    bean未从类加载器中找到 警告: Exception encountered during context initialization - cancelling refresh attempt: ...

  5. AngularJs中url参数的获取

    前言: angular获取通过链接形式访问的页面,要获取url中的参数,就不能通过路由的方式传递获取了,使用原生js或者jquery,又显得比较麻烦,好在angular已经封装了获取url参数的方法, ...

  6. 【linux】进程状态

    [进程状态转移图] PROCESS STATE CODES R running or runnable (on run queue) D uninterruptible sleep (usually ...

  7. Wannafly挑战赛13 B:Jxc军训(逆元)

    题目描述 在文某路学车中学高一新生军训中,Jxc正站在太阳下站着军姿,对于这样的酷热的阳光,Jxc 表示非常不爽. Jxc将天空看做一个n*n的矩阵,此时天上有m朵云,这些云会随机分布在m个不同的位置 ...

  8. [剑指Offer]48-最长不含重复字符的子字符串(递归思想,循环实现)

    题意 如题,字符串只含a-z,输出该子串长度.例:"arabcacfr",输出4. 解题思路 递归思想 计f(i)为以第i个字符结尾的最长不含重复字符的子串长度. 状态转移:计d为 ...

  9. 在ALV界面添加下拉框

    1.在alv界面表单属性中设置 if wa_fieldcat-fieldname = 'YC_MARK'.              wa_fieldcat-edit = 'X'.           ...

  10. rbac 权限分配, 基于formset实现,批量编辑

    已经完成了  批量添加的功能. 还想要一个批量修改的功能了.随之而来的第一个问题就是,  我们的formset 并不是一条记录.而是 多条记录,甚至整个表的记录.那么显而易见的问题就是,当前端页面把数 ...