「解析」牛客网-华为机考企业真题 21-40
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证idear,避免重复造轮子的繁琐,希望对看合集的你有些许帮助!
- 「解析」牛客网-华为机考企业真题 1-20
- 「解析」牛客网-华为机考企业真题 21-40
- 「解析」牛客网-华为机考企业真题 41-60
- 「解析」牛客网-华为机考企业真题 61-80
- 「解析」牛客网-华为机考企业真题 81-108
文章目录
- HJ21 简单密码
- HJ22 汽水瓶
- HJ23 删除字符串中出现次数最少的字符
- ★★ HJ24 合唱队
- ★★★ HJ25 数据分类处理
- HJ26 字符串排序
- HJ27 查找兄弟单词
- ★★★★★ HJ28 素数伴侣
- HJ29 字符串加解密
- ★★★ HJ30 字符串合并处理
- HJ31 单词倒排
- HJ32 密码截取
- HJ33 整数与IP地址间的转换
- HJ34 图片整理
- HJ35 蛇形矩阵
- HJ36 字符串加密
- HJ37 统计每个月兔子的总数
- HJ38 求小球落地5次后所经历的路程和第5次反弹的高度
- ★★ HJ39 判断两个IP是否属于同一子网
- HJ40 统计字符
HJ21 简单密码

""" 懒人做法 """
while True:try:A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"B="22233344455566677778889999bcdefghijklmnopqrstuvwxyza0123456789"list1=[]list2=[]for i in A:list1.append(i)for i in B:list2.append(i)C=[]a=input()for i in a:if i in list1:C.append(list2[list1.index(i)])else:C.append(i)print(''.join(C))except:break
方法二
while True:try:s = input()res = []for i in s:if i.isdigit():res.append(i)elif i.isupper() and i != 'Z':res.append(chr(ord(i.lower()) + 1)) # 大小写切换elif i == 'Z':res.append('a')else:if i in 'abc': # if ord('a') <= ord(oder[i]) <= ord('c'):res.append('2')elif i in 'def':res.append('3')elif i in 'ghi':res.append('4')elif i in 'jkl':res.append('5')elif i in 'mno':res.append('6')elif i in 'pqrs':res.append('7')elif i in 'tuv':res.append('8')else:res.append('9')print(''.join(res))except:break
HJ22 汽水瓶

有点离谱的思路,恰好是2个瓶子最终能换一瓶,所以直接整除2即可,但标准解决方案应该是使用递归的思路
import sys
data = sys.stdin
for x in data:x = int(x.strip())if x != 0:print(int(x // 2))
递归思路
import sysdef f(n):if n == 0: return 0if n == 1: return 0if n >=2: return f(n-2) + 1if __name__ == '__main__':data = sys.stdinfor x in data:x = int(x.strip())if x != 0:print(f(x))
HJ23 删除字符串中出现次数最少的字符

s = input()
dic = {}
for i in s:if i in dic:dic[i] += 1else:dic[i] = 1MIN = min(dic.values())for i in s:if dic[i] == MIN:s = s.replace(i,'')
print(s)
★★ HJ24 合唱队

# 动态规划
def lengthOfLIS(lst):dp = []for i in range(len(lst)):dp.append(1)for j in range(i):if lst[i] > lst[j]:dp[i] = max(dp[i], dp[j] + 1)return dp # 每人左边可以站的人数while True:try:n, heights = int(input()), list(map(int, input().split()))# dp1:每人左边可以站的人数,dp2:每人右边可以站的人数dp1, dp2 = lengthOfLIS(heights), lengthOfLIS(heights[::-1])[::-1]res = []for i in range(len(dp1)):res.append(dp1[i] + dp2[i] - 1)print(n-max(res))except:break
★★★ HJ25 数据分类处理


while True:try:s1 = input().split()[1:]s2 = list(set(map(int, input().split()[1:])))s2.sort()rst = []for num in s2:tmp = []for i, sub in enumerate(s1):if str(num) in sub:tmp.extend([str(i), str(sub)])if tmp:rst.extend([str(num), str(len(tmp)//2)] + tmp)print(str(len(rst)) + " " + " ".join(rst))except:break
HJ26 字符串排序

sorted(iterable,str.upper)就可以实现1)字符由A到Z的排序2)能够实现同字母(A与a算同字母),由输入先后书序排列。
str.isalpha实现的是如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
try:s =input()a = ''for i in s:if i.isalpha():a += ib = sorted(a, key=str.upper)index = 0d = ''for i in range(len(s)):if s[i].isalpha():d += b[index]index += 1else:d += s[i]print(d)
except:break
HJ27 查找兄弟单词

while True:try:data1 = input().split() # 读取输入数据,并且转换为列表n1 = data1[0] # 获取单词的个数n2 = data1[-1] # 按字典排序的第几个兄弟词 data2 = data1[1:-2] # 获取输入的n个单词 data3 = data1[-2] # 获取兄弟词n3 = 0 # 用于存储兄弟词的数量data4 = [] # 用于存储兄弟词for word in data2:if word == data3:continueelif sorted(word) == sorted(data3):n3 = n3 + 1data4.append(word)print(n3)data5 = sorted(data4) # 将兄弟词按照字典排序print(data5[int(n2)-1])except:break
★★★★★ HJ28 素数伴侣

如果是素数,一定是奇数和偶数结合(奇数)才有可能是素数,所以将需要配对的数分为两组,一组是奇数,一组是偶数,通过匈牙利算法求得最大的配对数
此题为匈牙利算法解决二分图最大匹配问题。我们可以把数据分为偶数,奇数两部分,然后进行配对(因为素数为一奇一偶的和)。
import math
def isPrime(x):if x<=3:return x>1for i in range(2, int(math.sqrt(x)+1)):if x%i ==0:return Falseelse:return True//该odd是否有匹配的even,返回boolean值
def match(odd):
// 对偶数进行遍历,看是否与该奇数配对for i in range(n):// 若两数和为素数且该偶数在这轮循环中没有被访问过if isPrime(odd+ evens[i]) and vis[i]==0:// 将该偶数标记为已访问vis[i]=1// p[i]=odd 为该偶数对应的odd储存值,如果该偶数没有奇数odd匹配,则为0,否则返回所匹配的odd// 如果p[i]还未匹配或者 p[i]已经有其他匹配的odd2,且该match(odd2)还有其他可以匹配的偶数(True)if p[i]==0 or match(p[i]):// 取代原来的p[i]=odd2,变为 p[i]=oddp[i]=oddreturn Truereturn Falsewhile True:try:n = int(input())nums = list(map(int,input().split()))odds = []evens = []for num in nums:if num%2==0:evens.append(num)else:odds.append(num)m = len(odds)n = len(evens)s = 0p=[0]*nfor num in odds://每一次循环的vis必须要清空vis = [0]*nif match(num):s+=1print(s)except:break
HJ29 字符串加解密

用b判断是加密还是解密, 直接用映射的方法输出
def check(a,b):L1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"L2 = "BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890"result = ""if b == 1:for i in a:result += L2[L1.index(i)]elif b == -1:for i in a:result += L1[L2.index(i)]return result
while True:try:print(check(input(),1))print(check(input(), -1))except:break
★★★ HJ30 字符串合并处理


while True:try:str = ''.join(input().split())except:breakelse:# 第二步奇偶排列oushu = [str[x] for x in range(0,len(str),2)]jishu = [str[x] for x in range(1,len(str),2)]oushu.sort()jishu.sort()paixu = []for i in range(len(str)):n = int(i/2)if i % 2 == 0:paixu.append(oushu[n])else:paixu.append(jishu[n])#第三步转换字符for i in paixu:try:b=bin(int(i,16))[2:]b = '0'*(4-len(b)) + b if len(b)<4 else bb = b[::-1]b = hex(int(b, 2))[2:].upper()print(b,end='')except:print(i,end='')print()
HJ31 单词倒排

a=input().strip()
for i in range(len(a)):if not a[i].isalpha():a=a.replace(a[i], ' ')b=a.split(' ')
if ' ' in b:b = b.pop(' ')b.reverse()
print(' '.join(b))
HJ32 密码截取

str = input()
n = len(str)
list = []
for i in range(0,n-1):for j in range(1,n):if str[j] == str[i] and str[i+1:j] == str[j-1:i:-1]:list.append(len(str[i:j+1]))
print(max(list))
HJ33 整数与IP地址间的转换

用到int和bin函数,在10进制和2进制之间反复转换
def transfer_ip2num(ip):ip_list = ip.split('.')bin_str = ''for x in ip_list:bin_str += bin(int(x))[2:].rjust(8,'0')return int('0b'+ bin_str, 2)def transfer_num2ip(num):result = ''bin_str = bin(int(num))[2:].rjust(32,'0')for idx in range(4):result = result + str(int('0b' + bin_str[idx*8:idx*8+8], 2)) + '.'return result[:-1]if __name__ == '__main__':while True:try:print(transfer_ip2num(input()))print(transfer_num2ip(input()))except EOFError: break
HJ34 图片整理

while True:try:print(''.join(sorted(input())))except EOFError: break
HJ35 蛇形矩阵

观察第一行的规律符合累加求和公式;(n+1)n/2
第二行的规律则是第一行的 ((n+1)n/2) - 1
第三行的规律则是第一行的 ((n+1)n/2) - 2
第四行的规律则是第一行的 ((n+1)n/2) - 3
当i = 1 时,j = 1,2,3,4 进入循环;
当i = 2 时,j = 2,3,4
当i = 3 时,j = 3,4
当i = 4 时,j = 4
n = int(input().strip())
for i in range(1,n+1) :for j in range(i,n+1) :# 输出的公式是转化后的,其实也可以写去括号前,# int()的作用是将结果转化成整型,因为计算结果是有小数的,# end = ' '作用是将内层循环的计算结果以空格隔开print(int(((j+j**2)/2)-i+1),end = ' ')print() # 一次循环结束后打印空,用作换行
HJ36 字符串加密

letterlst = []
for i in range(26):letterlst.append(chr((ord("a")+i)))
while True:try:key = input().upper()string = input()alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'encrypted_map = []res = ''for i in range(len(key)):if key[i] not in encrypted_map:encrypted_map.append(key[i])for j in alpha:if j not in encrypted_map:encrypted_map.append(j)for k in string:if k.islower():res += encrypted_map[alpha.index(k.upper())].lower()else:res += encrypted_map[alpha.index(k.upper())]print(res)except:break
HJ37 统计每个月兔子的总数

这道题目不是很难,但是我们必须要深刻理解题目的含义。
根据题意,我们可以知道,兔子有三种状态:
(1)年龄为3个月及以上:可以生产,设为num。
(2)年龄为2个月:不可以生产,设为num2。
(3)年龄为1个月:不可生产,刚出生,设为num1。
我们可以先分析输入输出,可以得出,我们最开始获得的是一只一个月的兔子,并不是一只成年的兔子,因此在最初的两个月中,该兔子需要成长,不能生育,这是需要特别注意的,题目没有具体说清楚。
因此,我们可以假设num,num1,num2初始值为0,针对第n月的情况,我们可以使用for循环处理,在循环中,需要特别处理前两个月的情况,因为这两个月,没有成年的兔子可以生育,当到达第三个月以及以后时,我们可以按照正常的逻辑进行处理。
首先,我们先讨论特例的情况。当n=1时,此时三种兔子都是0,加入第一只小兔子,设num1=1;当n=2时,没有成年的兔子可以生产,此时有一只兔子的年龄增加一岁。
当n>=3时,此时,已有可以生产的成年兔子了,num2增加一月,此时成年兔子为num=num+num2,而num1中的兔子年龄增加一月,num2=num1。当月新出生的兔子num1=num。
最后输出三种兔子的总和就是最终的结果。
while True:try:n = int(input())num = 0num1 = 0num2 = 0for i in range(n):num += num2num2 = num1if num==0 and num2 == 0:num1 = 1elif num==0 and num2 == 1:num1 = 0else:num1 = numprint(num+num1+num2)except:break
斐波那契数列:1 1 2 3 5 8 13 21 34 f(n)=f(n-1)+f(n-2) n>2,n从0开始
1.递归法:
while True:try:month=int(input())n=month-1def func(n):if n<2:#基线条件return 1else:#递归条件return func(n-1)+func(n-2)print(func(n))except:break
2.循环列表
import sys
for s in sys.stdin:#s=input()读入数据的1行month=int(s)L=[]for i in range(month):if i<2:#前两个月都为1total=1L.append(total)else:total=L[i-1]+L[i-2]#之后均为前两个数的和L.append(total)print(L[-1])#最后的列表L=[1, 1, 2, 3, 5, 8, 13, 21, 34]
HJ38 求小球落地5次后所经历的路程和第5次反弹的高度

while True:try:H = int(input())S = 0 - Hfor i in range(5):S = S + H * 2H = H/2print(float(S))print(float(H))except:break
★★ HJ39 判断两个IP是否属于同一子网


直接采用 & 进行 位运算
while True:try:x = input().split('.')y = input().split('.')z = input().split('.')m, n = [], []for i in range(len(x)):x[i] = int(x[i])y[i] = int(y[i])z[i] = int(z[i])if x[0]!= 255 or x[3]!=0 or max(x+y+z)>255 or min(x+y+z)<0:print('1')else:for i in range(len(x)):m.append(int(x[i]) & int(y[i]))n.append(int(x[i]) & int(z[i]))if m == n:print('0')else:print('2')except:break
通过 bin转化为 2进制,然后替换掉 0b
while True:try:x=input().split(".")y=input().split(".")z=input().split(".")m=[]n=[]for i in range (len(x)):x[i]=int(x[i])y[i] = int(y[i])z[i] = int(z[i])if x[0]!=255 or x[3]!=0 or max(x+y+z)>255 or min(x+y+z)<0:print("1")else:for i in range (len(x)):x[i]=bin(x[i]).replace("0b","")y[i] = bin(y[i]).replace("0b","")z[i] = bin(z[i]).replace("0b","")m.append(int(x[i],2)&int(y[i],2))#m[i]=m[i].replace("0b","")n.append(int(x[i],2)&int(z[i],2))#n[i] = n[i].replace("0b", "")if m==n:print("0")else:print("2")except:break
HJ40 统计字符

通过 re 正则化求解
import re
while True:try:s = input()print(len(''.join(re.findall(r'[a-zA-Z]+', s))))print(len(''.join(re.findall(r' ', s))))print(len(''.join(re.findall(r'\d', s))))print(len(''.join(re.findall(r'[^a-zA-Z0-9 ]+', s))))except:break
直接统计
while True:try:s=input()l=[0,0,0]for i in s:l[0]+=int(i.isalpha())l[1]+=int(i==' ')l[2]+=int(i.isnumeric())print(l[0])print(l[1])print(l[2])print(len(s)-l[0]-l[1]-l[2])except:break
相关文章:
「解析」牛客网-华为机考企业真题 21-40
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工…...
JAVA练习92-快乐数
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 提示:这里可以添加本文要记录的大概内容: 3月28日练习内容 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目-…...
BPF 之路:技术背景
目录 引言 什么是BPF 历史 组成 执行机制 BPF 和ebpf 的关系 BCC、bpftrace、IO Visor BCC 项目的quick start execsnoop biolatency 动态插桩:kprobes和uprobes 概念 缺点 静态插桩:tracepoint 和USDT 概念 缺点 推荐的方案 初识bpft…...
C++—— set、map、multiset、multimap
目录 关联式容器 概念 键值对 树形关联式容器 set 介绍 定义方式 使用 map 介绍 使用 multiset 介绍 使用 multimap 介绍 使用 相关的OJ题 前K个高频单词 关联式容器 概念 我们之前接触过的一些容器,比如:vector、list、deque、forwa…...
Qlib使用
Qlib https://github.com/microsoft/qlib 将csv文件转化为Qlib的数据格式:https://qlib.readthedocs.io/en/latest/component/data.html#converting-csv-format-into-qlib-format 注意每支股票都要保存成单独一个文档,且文档名字与股票代号一致。 其中f…...
TL-WDR7660 httpProcDataSrv任意代码执行漏洞复现分析
01 漏洞简述 2023年1月31日,CNVD公开了一个由国内安全研究员提交的TL-WDR7660 httpProcDataSrv任意代码执行漏洞,编号为CNVD-2023-05404,同时公开了漏洞利用详情,poc代码链接为https://github.com/fishykz/TP-POC。从poc代码详情…...
基于DDS的SOA测试方案实现
随着以太网技术在车载网络中的应用,各种基于以太网的中间件也相继被应用在车内,如果对车载网络有过相关了解的小伙伴,对于作为中间件之一的DDS(数据分发服务Data Distribution Service)可能并不陌生;若没有…...
LibTorch中Windows系统环境配置及CUDA不可用问题解决
前言:本文对在Windows系统上进行LibTorch开发环境配置及相关问题解决做一个较为详细的记录,以便后续查询使用。 使用环境版本: Windows 11 Visual Studio 2022 CUDA 12.0 LibTorch 1.13.1_cu11.7 目录一、LibTorch简介二、LibTorch下载安装三…...
Java并发编程实战二
线程间的通讯方式 1.volitate(缓存一致性协议),synchronize,lock(都保证可见性) 2.wait.notify,await(),signal(前两个是Object,后两个属于lock) 3.管道输入、输出流 (示例代码:PipeInOut.java)(目前几乎没人使用) 管道输入/输…...
Linux中最基本的命令ls的用法有哪些?
Linux是一种流行的操作系统,被广泛应用于服务器和个人电脑。Linux命令行界面是使用Linux操作系统的关键。其中一个最基本的命令是"ls"命令,该命令用于列出指定目录中的所有文件和子目录。在这篇文章中,我们将探讨ls命令及其各种用途…...
第 100002(十万零二)个素数是多少?
题目描述 素数就是不能再进行等分的整数。比如7,11。而 9 不是素数,因为它可以平分为 3 等份。一般认为最小的素数是2,接着是 3,5,... 请问,第 100002(十万零二)个素数是多少? 请注意࿱…...
Lua迭代器
Lua迭代器 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。 在 Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。 泛型 f…...
同步与互斥之信号量
目录 1、信号量用于线程的互斥 验证 2、信号量用于线程的同步 验证 3、无名信号量用于进程间互斥 代码一 代码二 验证 4、有名信号量 用于进程间同步和互斥 验证 信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它…...
如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养
本文系 NebulaGraph Community Academic 技术文档工程师 Abby 的参会观感,讲述了她在中国技术传播大会分享的收获以及感悟。 据说,技术内容领域、传播领域的专家和决策者们会在中国技术传播大会「tcworld China 2022」大会上分享心得。作为一名技术文档工…...
如何学习k8s
学习Kubernetes可以遵循以下步骤: 了解Kubernetes的基本概念和架构。学习Kubernetes前,需要了解它的基本概念和组成部分,包括Pod、Service、ReplicaSet、Deployment、Namespace等等,同时也需要了解Kubernetes的整体架构和工作原理…...
【SSM】MyBatis(十.动态sql)
文章目录1.if2.where3.trim4.set5. choose when otherwise6.foreach6.1 批量删除6.2 批量增加7.sql1.if <select id"selectByMultiCondition" resultType"Car">select * from t_car where 1 1<if test"brand ! null and brand ! ">…...
最近很多人都在说 “前端已死”,讲讲我的看法
转自 : 掘金 作者 : Ethan_Zhou 现状 我记得去年脉脉的论调还都是 客户端已死,前后端还都是一片祥和,有秀工资的,有咨询客户端转前端的,怎么最近打开脉脉一看,风向变了? 随便刷几下,出来的信息…...
大家好,我是火旺技术
大家好,我是火旺技术 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用。这其中,家乡特色推荐的网络应用已经成为外国家乡推荐系统的一种很普遍的方式。不过,在国内,管理网站可能还处于起步阶段。 …...
【Java并发编程系列】全方位理解多线程几乎包含线程的所有操作哦
文章目录一、概述及目录二、实现多线程的方式2.1 继承Tread类,重写run方法。start方法2.2 实现Runnable方法,并实现run接口方法2.3 实现Callable接口重写call方法,Feature.get()获取返回值三、线程的执行流程3.1 执行流程3.2 start方法和 run…...
天宝S6测量机器人/天宝S6全站仪参数/教程/Trimble 天宝全站仪
TRIMBLE DR PLUS技术 Trimble DR Plus™距离测量技术实现更大范围的直接反射测量,不使用棱镜也能进行长距离测量。难以抵达或不安全的测 量目标,对Trimble S6来说不再是问题。Trimble DR Plus结合 了MagDrive™磁驱伺服技术,使测量的快捷和…...
ARMv8-A A64指令集:符号扩展与位操作指令详解
1. A64指令集符号扩展与位操作指令概述在ARMv8-A架构的A64指令集中,符号扩展和位操作指令构成了处理器基础运算能力的重要部分。这些指令通过硬件级优化实现了高效的数据类型转换和位级操作,为底层系统编程和性能敏感型应用提供了关键支持。符号扩展指令…...
模拟仿真技术在现代集成电路设计中的挑战与解决方案
1. 模拟仿真技术面临的现代挑战在当今集成电路设计领域,模拟仿真技术正面临前所未有的挑战。随着工艺节点从130nm一路演进到15nm甚至更小尺寸,设计复杂度呈指数级增长。我曾参与过多个采用28nm工艺的混合信号芯片项目,深刻体会到传统SPICE仿真…...
D2DX:让《暗黑破坏神2》在现代电脑上完美运行的终极方案
D2DX:让《暗黑破坏神2》在现代电脑上完美运行的终极方案 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为《…...
Tiny AI Client:零依赖、轻量化的AI API调用库设计与实战
1. 项目概述与核心价值最近在折腾AI应用本地化部署和轻量化客户端时,发现了一个挺有意思的项目——piEsposito/tiny-ai-client。这名字起得就很直白,“tiny”意味着小巧,“ai-client”点明了它是一个AI客户端。乍一看,你可能会觉得…...
【网络安全】什么是漏洞扫描?有哪些功能?
【网络安全】什么是漏洞扫描?有哪些功能? 一、什么是漏洞扫描? 漏洞扫描是指基于CVE、CNVD、CNNVD 等漏洞数据库,通过专用工具扫描手段对指定的远程或者本地的网络设备、主机、数据库、操作系统、中间件、业务系统等进行脆弱性评估…...
避坑指南:在CentOS 7.5上成功安装Ansys 19.2的完整流程(附字体问题终极解决方案)
CentOS 7.5与Ansys 19.2黄金组合:工业仿真环境搭建实战手册 在工程仿真领域,Ansys作为行业标准工具链的核心组件,其Linux环境部署一直是技术人员的痛点。经过长达三个月的多版本交叉测试,我们意外发现CentOS 7.5与Ansys 19.2的组合…...
VRM-VRChat双向转换引擎:打破虚拟角色平台壁垒的技术解决方案
VRM-VRChat双向转换引擎:打破虚拟角色平台壁垒的技术解决方案 【免费下载链接】VRMConverterForVRChat 项目地址: https://gitcode.com/gh_mirrors/vr/VRMConverterForVRChat VRM格式转换、VRChat SDK3兼容、Unity编辑器扩展、虚拟角色迁移、跨平台角色转换…...
Hack The Box注册失败?别慌,可能是你的‘上网姿势’不对(附最新可用方案)
Hack The Box注册问题排查与解决方案全指南 注册Hack The Box时遇到各种报错提示是许多技术爱好者共同的困扰。作为全球知名的网络安全实战平台,其注册流程确实存在一些技术门槛需要跨越。本文将系统性地分析注册失败的深层原因,并提供多种经过验证的解决…...
Python并发模型全景解析
Python并发模型全景解析:线程、协程、多进程与GIL深度实战 🐍 Python 的并发编程一直是个让人困惑的话题:GIL 是什么?什么时候用线程?什么时候用协程?什么时候用多进程?本文从底层原理到生产实战,彻底讲清楚 Python 的四种并发模型,附带性能对比测试和真实踩坑经验。…...
2000-2025年《中国县域统计年鉴》pdf+excel版(附赠面板数据)
资源介绍《中国县域统计年鉴》2000-2025一、数据介绍《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴,从2014年开始分为《中国县域统计年鉴(县市卷)》和《中国县域统计年鉴(乡镇卷)》两卷。数…...
