leetcode_811. 子域名访问计数

2023-10-30 20:55

本文主要是介绍leetcode_811. 子域名访问计数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:https://leetcode.cn/problems/subdomain-visit-count/description/

涉及知识点:库函数atoi,库函数strstr,库函数strchr,库函数sprintf,UT_hash

解法一:自己构造结构体

#define LEN 100typedef struct {char str[LEN];int cnt;
} MARK_S;char ** subdomainVisits(char ** cpdomains, int cpdomainsSize, int* returnSize){int i ,j;MARK_S mark[300] = {0};char temp[LEN];int mark_size = 0;for (i = 0; i < cpdomainsSize; i++) {char *p = strstr(cpdomains[i], " ");int space_index = p - cpdomains[i];char rep[LEN] = {0};memcpy(rep, cpdomains[i], sizeof(char) * space_index);int count = atoi(rep);strcpy(temp, cpdomains[i] + space_index + 1);for (j = 0; j < mark_size; j++) {if (strcmp(mark[j].str, temp) == 0) {mark[j].cnt += count;break;}}if (j == mark_size) {strcpy(mark[mark_size].str, temp);mark[mark_size++].cnt = count;}p = strstr(cpdomains[i], ".");while (p) {strcpy(temp, p + 1);for (j = 0; j < mark_size; j++) {if (strcmp(mark[j].str, temp) == 0) {mark[j].cnt += count;break;}}if (j == mark_size) {strcpy(mark[mark_size].str, temp);mark[mark_size++].cnt = count;}p = strstr(p + 1, ".");  }}*returnSize = mark_size;char **ans = (char **)malloc(sizeof(char*) * mark_size);for (i = 0; i < mark_size; i++) {ans[i] = (char*)malloc(sizeof(char) * 110);sprintf(ans[i], "%d %s", mark[i].cnt, mark[i].str);}return ans;
}

解法二:哈希表

typedef struct {char *key;int cnt;UT_hash_handle hh;
} HASH_S;HASH_S *usrs = NULL;char ** subdomainVisits(char ** cpdomains, int cpdomainsSize, int* returnSize) {HASH_S *cur, *next;for (int i = 0; i < cpdomainsSize; i++) {int count = atoi(cpdomains[i]);int space_index = strchr(cpdomains[i], ' ') - cpdomains[i];HASH_FIND_STR(usrs, cpdomains[i] + space_index + 1, cur);if (!cur) {cur = (HASH_S*)malloc(sizeof(HASH_S));cur->key = cpdomains[i] + space_index + 1;cur->cnt = count;HASH_ADD_STR(usrs, key, cur);} else {cur->cnt += count;}int len = strlen(cpdomains[i]);for (int j = space_index + 1; j < len; j++) {if (cpdomains[i][j] != '.') {continue;}HASH_FIND_STR(usrs, cpdomains[i] + j + 1, cur);if (!cur) {cur = (HASH_S*)malloc(sizeof(HASH_S));cur->key = cpdomains[i] + j + 1;cur->cnt = count;HASH_ADD_STR(usrs, key, cur);} else {cur->cnt += count;}  }}char **ans = (char**)malloc(sizeof(char*) * HASH_COUNT(usrs));*returnSize = 0;HASH_ITER(hh, usrs, cur, next) {ans[*returnSize] = (char*)malloc(sizeof(char) * 110);sprintf(ans[(*returnSize)++], "%d %s", cur->cnt, cur->key);HASH_DEL(usrs, cur);free(cur);}return ans;
}

这篇关于leetcode_811. 子域名访问计数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/310541

相关文章

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件