811. 子域名访问计数

2023-11-18

网站域名 "discuss.leetcode.com" 由多个子域名组成。顶级域名为 "com" ,二级域名为 "leetcode.com" ,最低一级为 "discuss.leetcode.com" 。当访问域名 "discuss.leetcode.com" 时,同时也会隐式访问其父域名 "leetcode.com" 以及 "com" 。

计数配对域名 是遵循 "rep d1.d2.d3" 或 "rep d1.d2" 格式的一个域名表示,其中 rep 表示访问域名的次数,d1.d2.d3 为域名本身。

例如,"9001 discuss.leetcode.com" 就是一个 计数配对域名 ,表示 discuss.leetcode.com 被访问了 9001 次。
给你一个 计数配对域名 组成的数组 cpdomains ,解析得到输入中每个子域名对应的 计数配对域名 ,并以数组形式返回。可以按 任意顺序 返回答案。

示例 1:

输入:cpdomains = ["9001 discuss.leetcode.com"]
输出:["9001 leetcode.com","9001 discuss.leetcode.com","9001 com"]
解释:例子中仅包含一个网站域名:"discuss.leetcode.com"。
按照前文描述,子域名 "leetcode.com" 和 "com" 都会被访问,所以它们都被访问了 9001 次。
示例 2:

输入:cpdomains = ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
输出:["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
解释:按照前文描述,会访问 "google.mail.com" 900 次,"yahoo.com" 50 次,"intel.mail.com" 1 次,"wiki.org" 5 次。
而对于父域名,会访问 "mail.com" 900 + 1 = 901 次,"com" 900 + 50 + 1 = 951 次,和 "org" 5 次。
 

提示:

1 <= cpdomain.length <= 100
1 <= cpdomain[i].length <= 100
cpdomain[i] 会遵循 "repi d1i.d2i.d3i" 或 "repi d1i.d2i" 格式
repi 是范围 [1, 104] 内的一个整数
d1i、d2i 和 d3i 由小写英文字母组成

这道题就是遍历vector,用map储存字符串以及字符串出现的次数,关键点在于对字符串的切割操作,这里要用到substr函数,substr中只有一个参数表示返回从该下标到字符串末尾的字串,并使用stoi函数来将字串转换为int型的数字,便于后续map中的相加操作。最后用一个vector来存储map中的数据并返回,关键在于将map中的string和int两组数据使用‘+’来合并成一个字符串。

代码如下:
 

class Solution {
public:
    vector<string> subdomainVisits(vector<string>& cpdomains) {
        map<string,int>mymap;
        for(auto& s:cpdomains)
        {
            int i=s.find(' ');
            int v=stoi(s.substr(0,i));
            for(;i<s.size();i++)
            {
                if(s[i]=='.'||s[i]==' ')
                {
                    mymap[s.substr(i+1)]+=v;
                }
            }
        }
        vector<string>ans;
        for(auto& [s,v]:mymap)
        {
            ans.push_back(to_string(v)+" "+s);
        }
        return ans;
    }
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

811. 子域名访问计数 的相关文章

  • Zotero文献管理工具使用教程-2

    1 打开word 2 选择zotero标签 3 点击Add Edit Citation 4 选择要导入文献的格式后点击OK 这里以GB T 7714 1987为例 5 鼠标光标选中要插入的位置 前边一定要有文字 之后点击2所框选位置 6 点
  • 关于置信区间、置信度的理解

    关于置信区间和置信度的理解 在网上找了两个相关的观点感觉讲的很好 恍然大悟 简单概括 参数只有一个是固定的不会变 我们用局部估计整体 参数95 的置信度在区间A的意思是 正确 采样100次计算95 置信度的置信区间 有95次计算所得的区间包

随机推荐

  • 【leetcode 524. 通过删除字母匹配到字典里最长单词】双指针,在不同字符串中同向查找

    解题思路 依旧是双指针 不过双指针在不同字符串中同向查找 且在使用双指针前需要对被查找集合做排序 1 根据题目要求 先将dictionary的字符串按照字符串的长度从大到小排序 且字符串符合字典序 进行排序 目的是为了接下查找时 dicti
  • 使用streamstring获取字符串string的子串

    最近优化代码 特别是在C 中获取string的字串 代码经常会遇到 非常有用且重复的功能函数 对这个功能 我之前一直用substr来获取字串 功能也非常强大 最近发现一个非常好用的stringstream 用它来实现substr的部分功能
  • Springboot整合RabbitMQ详解

    RabbitMQ 文章目录 RabbitMQ RabbitMQ的特点 AMQP AMQP模型 消息确认 AMQP是一个可编程的协议 RabbitMQ安装 Windows10安装 步骤 Spring整合AMQP 官方中文文档 GitHup翻译
  • Windows Server 2012 R2 百度创建AD域

    Windows Server 2012 R2 创建AD域 前言 我们按照下图来创建第一个林中的第一个域 创建方法为先安装一台Windows服务器 然后将其升级为域控制器 然后创建第二台域控制器 一台成员服务器与一台加入域的Win8计算机 环
  • Linux终端查看文件指令

    可以用cat查看文件文本内容 还可以用more命令查看 两者不同的是 cat是直接将内容全部显示出来 more支持翻页 如果文件过多可以一页页的展示 翻页可以通过按空格实现
  • Mysql:核心的数据库操作

    Mysql核心点 对于每一位研发同学 Mysql都是必须掌握的技能啦 基本的Mysql的操作 还是得很好的掌握的 一 Mysql 学习一个技术 一定要先去官网学习 Mysql官网 二 基本的查询 1 创建表并插入数据 创建表 CREATE
  • 基于MindSpore的YOLOv3-DarkNet53网络实现

    基于MindSpore的YOLOv3 DarkNet53网络实现 网络模型介绍 1 backbone Darknet 53 YOLOv3使用Darknet 53提取特征 其借鉴了Darknet 19结构 不同于Darknet 19的是 Da
  • Flutter开发遇到的问题

    一 在AndroidStudio4 1中没有 New Flutter Project 菜单 那是由于你没有安装Flutter插件 需要在setting的插件管理中添加 Flutter 和 dart 插件 二 Flutter SDK 安装参考
  • 微信小程序input禁止空格输入

    用户输入的时候 可能会有输入空格的情况 所以我们要利用简单的正则实时去除空格 利用数据双向绑定的特性同步当前input的value值 下面是源码 wxml
  • 基于SpringBoot的螺蛳粉销售系统计算机毕业设计源码70795

    摘 要 随着供给侧结构性改革的稳步实施 互联网 这一新的国家发展的重要战略手段通过 双创 不但改变了传统的供需关系 还为经济发展带来了新动能 它已经成为产业发展的新引擎 螺顿粉产业就是在 互联网 背景下应运而生且蓬勃发展的 但是 在经济全球
  • 寻你的人生 寻你的选择

    无论如何选择 只要是自己的选择 就不存在对错与后悔 过去的我不会让现在的我满意 现在的我也不会让未来的我满意 当面对前路坎坷 我知道既然当初有胆量去选 那么就该有勇气把后果来承担 有毅力把梦想坚持并实现 我们人生中最大的懒惰 就是当我们明知
  • SonarQube8.7使用配置

    一 sonarQube版本 二 安装 三 配置说明 1 设置检测规则 2 启用pdf输出 一 sonarQube版本 本体 sonarqube 8 7 1 42226版本 插件 sonar findbugs plugin 4 0 3 jar
  • 生成Android的keystore密钥

    打开cmd 进入Jdk的 安装目录下的bin文件夹 输入命令 keytool genkey alias android keystore keyalg RSA validity 20000 keystore android keystore
  • /dev/sdb1 已经挂载或 /mnt/mountpoint3 忙解决办法

    dev sdb1 已经挂载或 mnt mountpoint3 忙解决办法 在挂载硬盘分区的时候 会出现mount dev sdd1 already mounted or data3 busy或者是在执行格式化分区的时候也会出现 dev hd
  • 操作系统重点

    1 1 选择题 1 考研真题 单项选择题 单道批处理系统的主要缺点是 A CPU利用率不高 2 考研真题 单项选择题 提高单机资源利用率的关键技术是 D 多道程序设计技术 3 考研真题 单项选择题 并发性是指若干事件在 发生 A C 同一时
  • Qt智能指针之QScopedPointer

    内存释放的问题是C 中比较头疼的问题 合理的使用智能指针能有效的帮助我们减少忘记释放内存 导致的内存泄露问题 本文以Qt中的QScopedPointer为例 通过讲解其用法 从源码深度剖析其实现方式 QScopedPointer的使用原理比
  • IDEA中的“Deployment“ 将项目直接部署到服务器上

    ntelliJ IDEA中的 Deployment 工具栏是一个方便的工具 用于将你的项目直接部署到服务器上 这个工具栏提供了三种部署的方式 1 Web Server在本地电脑上 并且服务器运行目录也在项目目录下 2 Web Server在
  • 【读书笔记】浪潮之巅——公司史篇

    浪潮之巅 公司史 AT T 百年帝国 创立 1877贝尔电话公司 1984年反垄断被拆分 AT T 8家小贝尔公司 1996年重组 AT T 长途电话等电信服务业务 朗讯 专门做程控交换机等设备制造业务 因借钱给各公司买朗讯设备 2000年
  • centos实现集群之间ssh免密(最简单的ssh免密)

    master 1 在虚拟机命令界面输入 ssh keygen t rsa 然后持续回车键 2 ssh copy id 主机名 ssh copy id master ssh copy id slave1 slave1 ssh copy id
  • 811. 子域名访问计数

    网站域名 discuss leetcode com 由多个子域名组成 顶级域名为 com 二级域名为 leetcode com 最低一级为 discuss leetcode com 当访问域名 discuss leetcode com 时