当前位置: 首页 > news >正文

【头歌-Python】字符串自学引导

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279
参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    字符串自学引导

    • 第1关:统计“唐诗三百首”中诗人出现的次数
    • 第2关:统计文件中汉字字数
    • 第3关:格式化输出全部诗名
    • 第4关:随机输出一首诗

第1关:统计“唐诗三百首”中诗人出现的次数

任务描述
本关任务:编写一个能统计“唐诗三百首”中诗人出现次数的小程序。

相关知识
为了完成本关任务,你需要掌握:

  1. 序列元素计数方法

序列元素计数方法
s.count(x)可以返回序列s中元素x出现的次数。

txt = '武汉市有武汉大学、武汉理工大学、武汉科技大学等学校大量招收武汉学生'
print(txt.count('武汉'))  # 输出字符串中“武汉”出现的次数

输出:

5

文件’唐诗三百首.txt’中包含唐代诗人的300首左右的诗歌。各关会给出将文件读取为一个字符串和将文件逐行读取为字符串的方法,我们需要用字符串的方法对其进行处理,完成各关的任务。

编程要求
根据提示,在右侧编辑器补充代码,接收用户输入的一个诗人名字,统计并输出文件中该名字出现的次数(包括以作者身份出现和在诗句中出现),题目的测试数据保证都是文件中存在的诗人名字。
7.8 宋词三百首.txt
唐诗三百首 (2022).txt(下载后按题目要求修改文件名)

测试说明
平台会对你编写的代码进行测试:

测试输入:

李白

预期输出:

33

测试输入:

杜甫

预期输出:

37

开始你的任务吧,祝你成功!

参考代码

# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279
def count_poet(file, poet):"""统计诗人出现的次数,包括以作者身份和出现的诗句中的情况,返回一个整数"""with open(file, 'r', encoding='utf-8') as fr:txt = fr.read()  # 读取全部内容为一个字符串,此句不用理解,只需知道txt是包含所有诗句的字符串即可# 对齐此位置写程序语句,统计并返回诗人在字符串中出现的次数return txt.count('{}'.format(poet_name))if __name__ == '__main__':filename = '/data/bigfiles/唐诗三百首.txt'  # 文件名poet_name = input()                        # 输入诗人的名字print(count_poet(filename, poet_name))     # 调用函数统计并输出诗人在字符串中出现的次数

第2关:统计文件中汉字字数

任务描述
本关任务:编写一个能统计文件里去除标点后的汉字字数的小程序。

相关知识
为了完成本关任务,你需要掌握:

  1. 字符串替换方法
  2. 字符数量

字符串替换方法
txt.replace(a, b)可以将字符串txt中的子字符串a替换为字符串b,若需重复替换操作,一般应该重用字符串名,例如:

txt = 'one1two2three3four4five5six6seven7eight8nine9ten10'
for c in '0123456789':       # 遍历需要替换的数字txt = txt.replace(c, ' ')  # 将数字等字符替换为空格字符串,下一次替换在前一次替换结果的基础上进行
print(txt)

输出:

one two three four five six seven eight nine ten 
txt = 'one1two2three3four4five5six6seven7eight8nine9ten10'
for c in '0123456789':       # 遍历需要替换的数字txt = txt.replace(c, '')  # 将数字等字符替换为空字符串,下一次替换在前一次替换结果的基础上进行
print(txt)

输出:

onetwothreefourfivesixseveneightnineten

字符数量
len()函数可以返回序列x的中的元素个数,作用于字符串时,返回字符串的长度,即字符串中字符数量:

txt = 'one two three four five six seven eight nine ten'
print(len(txt))

输出

48
txt = 'onetwothreefourfivesixseveneightnineten'
print(len(txt))

输出:

39

编程要求
根据提示,在右侧编辑器补充代码,接收用户输入的一个文件名字,模板程序提供了将文件读取为字符串的语句,请将字符串中标点符号和数字等符号去除,统计并输出文件汉字数量(需去除的标点与符号包括:',【】[[],、 —《》() >~-·。:!?\n\r\t0123456789')。

测试说明
平台会对你编写的代码进行测试:

测试输入:

唐诗三百首.txt

预期输出:

21244

提示:

  1. 另一个测试点是其他文件
  2. 需要替换掉的字符:',【】[[],、 —《》() >~-·。:!?\n\r\t0123456789'

开始你的任务吧,祝你成功!

参考代码

# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279
def count_words(file):"""替换掉全部全角' '与半角空格' ',标点符号,换行符和数字字符,使用下面的字符串:',【】[[],、 —《》() >~-·。:!?\n\r\'0123456789'统计字数"""with open(file, 'r', encoding='utf-8') as fr:txt = fr.read()  # 读取全部内容为一个字符串,此句不用理解,只需知道txt是包含所有诗句的字符串即可# 对齐此位置补充代码,替换掉指定的字符并返回包含汉字的数量b="',【】[[],、 —《》() >~-·。:!?\n\r\t0123456789')"for i in b:if i in txt:txt=txt.replace(i,'')return len(txt)if __name__ == '__main__':filename = input()  # 输入文件名字print(count_words('/data/bigfiles/' + filename))

第3关:格式化输出全部诗名

任务描述
本关任务:编写一个能输出唐诗三百首中作者与诗名的小程序。

相关知识
为了完成本关任务,你需要掌握:

  1. 遍历文件对象
  2. 字符串索引切片
  3. 去除字符串首尾字符
  4. 字符串切分
  5. 字符串格式化

遍历文件对象
创建文件对象后可以用for...in 文件对象的方法遍历文件,每次循环依次获得文件对象中的一行,字符串名类型,行末有一个换行符'\n'

with open('唐诗三百首.txt', 'r', encoding='utf-8') as fr:for line in fr:   # 遍历文件对象,line为当前行,字符串print(line)  # 输出当前字符串

输出:

`...
045孟郊:游子吟慈母手中线,游子身上衣。临行密密缝,意恐迟迟归。谁言寸草心,报得三春辉?
...
` 

字符串索引切片
txt[i]可以返回字符串txt的中序号为i的字符

txt = '079李白:蜀道难\n'  # 序号0,1,2的字符分别是0,7,9
print(txt[0])

输出

0

索引不能越界,空字符串不能索引。

s = ''
print(s[0])      # IndexError: string index out of range

txt[m: n]可以返回字符串txt的中序号为从m到n(不包括n)之间的字符

txt = '079李白:蜀道难\n'  # 序号0,1,2的字符分别是0,7,9
print(txt[:3])

输出:

079

切片结果可以为空,起止值可以越界,空字符串可以切片。

s = ''
print(s[0:4])    # ''  返回空字符串
print([s[0:4]])  # ['']转为列表可直观查看

去除字符串首尾字符
txt.strip()可以去除字符串txt的开头结果的空白字符,如换行符’\n’等
如果想去除字符串首尾的其他字符,可以将要去除的字符做为参数放到括号中。

txt = '079李白:蜀道难\n'
print(txt.strip())

输出

079李白:蜀道难

字符串切分
txt.split(sep)可以根据参数sep将字符串txt切分为包含多个元素的列表

txt = '079李白:蜀道难\n'  # 字符串
print(txt.split(':'))    # 根据全角冒号切分为列表

输出

['079李白', '蜀道难\n']

字符串的方法可以链式应用,前一个方法处理结果若仍是字符串,可以继续应用字符串的方法进行处理,例如:

txt = '079李白:蜀道难\n'  # 字符串
print(txt.strip().split(':'))    # txt.strip()结果仍是字符串,可以继续应用split()方法,先去除末尾的换行符,再切分为列表

输出

['079李白', '蜀道难']

个别诗名中包含冒号:

txt = '039李白:子夜四时歌:春歌\n'  # 字符串
# 根据全角冒号切分为列表,列表中3个对象
print(txt[3:].strip().split(':'))

输出

['李白', '子夜四时歌', '春歌']

在切分时可以加maxsplit=1参数,限制最多切分一次,使诗名完整

txt = '039李白:子夜四时歌:春歌\n'  # 字符串
order_number = txt[:3]    # 标题行字符串前3个字符为序号
poet, poem = txt[3:].strip().split(':', maxsplit=1)
print(f'序号{order_number}的诗是【{poet}】作品“{poem}”')

输出

序号039的诗是【李白】作品“子夜四时歌:春歌”

字符串格式化
str.format()f-string可以对字符串进行格式化,将不改变的字符串放在引号中,将需要改变的变量放到字符串中的大括号{}中或做为format()的参数,程序设计时将用变量值填充在大括号所占的位置。

txt = '079李白:蜀道难\n'  # 字符串
order_number = txt[:3]    # 标题行字符串前3个字符为序号
# 标题行字符串第4个字符以后的部分根据全角冒号切分为列表,列表中2个对象分别命名为poet, poem
poet, poem = txt[3:].strip().split(':')
print(f'序号{order_number}的诗是【{poet}】作品“{poem}”')

输出

序号079的诗是【李白】作品“蜀道难”

若需要指定输出数据的宽度,可以使用{:宽度(int)}的写法来限定,如:

print(f'序号{order_number}的诗是【{poet:4}】作品“{poem}”')

输出

序号079的诗是【李白  】作品“蜀道难”

作者名长度不足4位则右补空格,超过4位则输出原始数据宽度。

文件’唐诗三百首.txt’中包含唐代诗人的300首左右的诗歌。每首诗前都有类似“079李白:蜀道难”的一行,这行包括序号、用全角冒号分隔开的作者和诗名(有些诗可能会有两个冒号),本关要求输出包含序号、作者和诗名的行。

编程要求
根据提示,在右侧编辑器补充代码,遍历文件对象,按测试用例格式输出包含3位数字序号、作者名和诗歌名。
注意: 作者名长度并不相同,要求以3位固定宽度输出,不足3位的右补空格填充。

测试说明
平台会对你编写的代码进行测试:

预期输出:

序号010的诗是【杜甫 】作品“佳人”
序号011的诗是【杜甫 】作品“梦李白二首之一”
序号012的诗是【杜甫 】作品“梦李白二首之二”
序号013的诗是【王维 】作品“送别”
...
序号034的诗是【柳宗元】作品“晨诣超师院读禅经”
...

开始你的任务吧,祝你成功!

参考代码

# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279def get_poem(file):"""读唐诗三百首,从每首诗的标题行中提取出序号、作者和诗名,输出序号作者与诗名,格式如下:序号106的诗是【杜甫】作品“春望”"""with open(file, 'r', encoding='utf-8') as fr:  # 打开文件创建文件对象for line in fr:    # 遍历文件,每次循环line依次获取文件的一行,字符串类型,以换行符'\n'结尾# 补充你的代码,按要求格式输出全部诗名的信息if ":" in line:order_number = line[:3]  poet, poem = line[3:].strip().split(':', maxsplit=1)print(f'序号{order_number}的诗是【{poet:3}】作品“{poem}”')if __name__ == '__main__':get_poem('/data/bigfiles/唐诗三百首.txt')   # 调用函数,函数内进行输出

第4关:随机输出一首诗

任务描述
本关任务:编写一个能从唐诗三百首中随机抽取一首诗输出的小程序。

相关知识
为了完成本关任务,你需要掌握:

  1. 获取随机整数
  2. 随机数种子
  3. 字符串拼接
  4. 不超过3位数的整数转3位字符串

获取随机整数
random.randint(a,b)可以随机获得[a,b]之间的一个整数,包含a和b。

import random
number = random.randint(10, 320)
print(number)

输出:

84   # 结果不确定,可为任意10-320之间的整数 

随机数种子
random.seed(n)设置随机数种子后可以使程序运行时产生的随机数固定不变,一般用于自动评测的程序都需要确定随机数种子。

import random
random.seed(50)
number = random.randint(10, 320)
print(number)

输出

264  # 种子值确定后,输出的随机数就固定不变

txt[m: n]可以返回字符串txt的中序号为从m到n(不包括n)之间的字符

txt = '079李白:蜀道难\n'  # 序号0,1,2的字符分别是0,7,9
print(txt[:3])

输出:

079

字符串拼接
+可以将多个字符串拼接为一个字符串,拼接时,字符串可以包含换行符等。

poem = ''           # 空字符串
txt1 = '235杜甫:八阵图\n'
poem = poem + txt1  # 字符串拼接
txt2 = '功盖三分国,名成八阵图。\n'
poem = poem + txt2  # 字符串拼接
txt3 = '江流石不转,遗恨失吞吴。\n'
poem = poem + txt3  # 字符串拼接
print(poem)

输出

235杜甫:八阵图
功盖三分国,名成八阵图。
江流石不转,遗恨失吞吴。

不超过3位数的整数转3位字符串
random.randint(a,b)可能会获取2位的整数,如87,此时若直接用成员判定:

if str(87) in line:

可能会把序号为87、187和287的诗都输出,与我们要求不符。
可以用str.format()f-string方法将整数格式化为3位数字的字符串:

number = 87
print(f'{number:03}')  # 3表示至少用3位表示,不足3位前面补0

输出:

087

文件’唐诗三百首.txt’中包含唐代诗人的300首左右的诗歌。随机抽取其中一首输出。

编程要求
根据提示,在右侧编辑器补充代码,先输入一个整数做随机数种子,抽取一首诗的序号,再遍历文件对象,把抽到的那个序号的诗句拼接为一个字符串再输出。

测试说明
平台会对你编写的代码进行测试:
输入:

50

预期输出:

264王昌龄:芙蓉楼送辛渐寒雨连江夜入吴,平明送客楚山孤。
洛阳亲友如相问,一片冰心在玉壶。

开始你的任务吧,祝你成功!

参考代码

# 禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279
# 补充一条语句,导入random库
import random
def random_poem(file, num):"""接受文件名字符串和一个整数为参数,随机产生一个10-320之间的整数,返回对应序号的诗句,字符串类型 """# 补充1条语句,用户输入的整数做随机数种子random.seed(n)# 补充1条语句,获取10-320之间一个整数i=random.randint(10, 320)poem = ''                              # 空字符串,用于容纳目标诗poet_flag = False                      # 做一个标记,假定当前行不是目标诗with open(file, 'r', encoding='utf-8') as fr:  # 创建文件对象for line in fr:                    # 遍历文件对象# 补充3条语句,当当前行包含序号(序号用3位数,不足3位前面补0)时,将当前行拼接到poem上,改变poet_flag的值为TrueI=f'{i:03}'if I==line[:3]:poem = poem + linepoet_flag = Trueelif line[0] in '0123456789':  # 若当前行不包含序号但有数字poet_flag = False          # 改变标记,后续几行不是目标诗句elif poet_flag:                # 如果标记值为真(True)poem = poem + line         # 将当前行拼接到字符串上return poem                        # 遍历结束后返回包含目标诗的字符串if __name__ == '__main__':n = int(input())                       # 输入一个整数做随机数种子print(random_poem('/data/bigfiles/唐诗三百首.txt', n))

相关文章:

【头歌-Python】字符串自学引导

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137517279 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 如果代码存在问题,麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 字符串自学引导 …...

44-技术演进(下):软件架构和应用生命周期技术演进之路

应用、系统资源、应用生命周期管理这 3 个维度,构成了我们对云的所有诉求。 我会介绍下应用维度和应用生命周期管理维度的技术演进。 我们就先来看下软件架构的演进之路。 软件架构的演进 软件架构技术演进如下图所示: 单体架构 在单体架构中&#xff…...

【C++】C++中的list

一、介绍 官方给的 list的文档介绍 简单来说就是: list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中…...

uniapp:Hbuilder没有检测到设备请插入设备或启动模拟器的问题解决

问题 使用模拟器调试运行项目时,出现以下提示,“没有检测到设备,请插入设备或启动模拟器后点击刷新再试”。排查了一天最终找到原因。 解决 已确认模拟器是已经正常启动,并且Hbuilder设置中的adb路径和端口都配置没有问题&#…...

基于RBF的时间序列预测模型matlab代码

整理了基于RBF的时间序列预测模型matlab代码, 包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型的进行评价。RBF模型在数据集上表现非常好。 训练集数据的R2为:0.99463 测试集数据的R2为:0.96973 训练集数据的MAE为:0.…...

vue vue3 手写 动态加载组件

效果展示 一、需求背景: # vue3 项目涉及很多图表加载、表格加载 #考虑手写一个动态加载组件 二、实现思路 通过一个加载状态变量,通过v-if判断,加载状态的变量等于哪一个,动态加载组件内部就显示的哪一块组件。 三、实现效果…...

HTML:表单

目录 案例&#xff1a; 一、form标签 二、input标签 三、textarea标签 四、select标签 五、fieldset 标签 案例&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>报名表</title> </head> &l…...

即插即用篇 | YOLOv5/v7引入Haar小波下采样 | 一种简单而有效的语义分割下采样模块

本改进已集成到 YOLOv5-Magic 框架。 下采样操作如最大池化或步幅卷积在卷积神经网络(CNNs)中被广泛应用,用于聚合局部特征、扩大感受野并减少计算负担。然而,对于语义分割任务,对局部邻域的特征进行池化可能导致重要的空间信息丢失,这有助于逐像素预测。为了解决这个问题…...

Plonky2.5:在Plonky2中验证Plonky3 proof

1. 引言 Plonky2.5为QED Protocol团队主导的项目&#xff0c;定位为&#xff1a; 在Plonky2 SNARK中验证Plonky3 STARK proof。 从而实现Plonky系列的递归证明。 开源代码实现见&#xff1a; https://github.com/QEDProtocol/plonky2.5https://github.com/Plonky3/Plonky3&a…...

卷积通用模型的剪枝、蒸馏---剪枝篇(此处以deeplabv3+为例,可根据模型自行定制剪枝层)

之后的两篇文章是对前段时间工作的一个总结。 一、环境配置 1.1、文章以b导的代码为模板,环境配置比较简单(第二篇蒸馏篇结束后会放置剪枝蒸馏配置好的百度网盘链接),其他算法自行配置,在剪枝之前,需要保证算法能够在本地跑通。 B导链接: https://github.com/bubbliiiin…...

使用Ollama在本地运行AI大模型gemma

1.下载&#xff1a; https://github.com/ollama/ollama/releases 2.配置环境变量 我的电脑-右键-属性-系统-高级系统设置-环境变量-【系统环境变量】新建 变量名&#xff1a;OLLAMA_MODELS &#xff08;固定变量名&#xff09; 变量值&#xff1a;E:\Ollama\Lib &#xff0…...

【IC前端虚拟项目】时序面积优化与综合代码出版本交付

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 到目前为止,我们完成了第一版综合,那么就可以打开报告看一下了,一看就会发现在1GHz时钟下时序真的很差(毕竟虚拟项目里使用的工艺库还是比较旧的,如果用12nm、7mn会好很多): Timing Path Group cl…...

windows版本-idea中下载的java版本在哪

1、点击idea的file-projectStructure 进入&#xff1a; 通过电脑目录进入该目录 找到bin目录&#xff0c;copy该目录地址 copy下来之后设置到系统环境变量中...

设计模式:创建者模式

定义 创建者模式&#xff08;Builder Pattern&#xff09;&#xff0c;又称建造者模式&#xff0c;是一种创建型设计模式&#xff0c;它提供了一种创建对象的最佳方式。该模式允许将一个复杂对象的构建与它的表示分离&#xff0c;这样同样的构建过程可以创建不同的表示。创建者…...

【linux】基础IO(四)

在上一篇基础IO中我们主要讲述了文件再磁盘中的存储&#xff0c;当然我们说的也都只是预备知识&#xff0c;为这一篇的文件系统进行铺垫。 目录 搭文件系统的架子&#xff1a;填补细节&#xff1a;inode&#xff1a;datablock[]: 更上层的理解&#xff1a; 搭文件系统的架子&a…...

集合框架(数组,Arrays.sort,list,map,set,stack,queue)蓝桥杯习题

前言(基本知识) List集合 有序&#xff0c;接口&#xff0c; List<引用数据类型> listnew ArrayList<>(); 方法&#xff1a; add() size() get()//索引index从0开始&#xff0c;返回对应的值 isEmpty()判断是否包含该元素,不包含返回true&#xff0c;包含返…...

【C++基础】运算符和流程控制语句

C中的运算符和流程控制语句 一、运算符1. C和Java在通用运算符中的不同之处对比2. C中的位运算符2.1 移位运算符2.2 位逻辑运算符 3. 运算时的类型转换总结3.1 隐式类型转换3.2 显式类型转换&#xff08;强制类型转换&#xff09; 4. 注意 二、流程控制语句1. C和Java在通用流程…...

AOF文件重写

1.2.3.AOF文件重写 因为是记录命令&#xff0c;AOF文件会比RDB文件大的多。而且AOF会记录对同一个key的多次写操作&#xff0c;但只有最后一次写操作才有意义。通过执行bgrewriteaof命令&#xff0c;可以让AOF文件执行重写功能&#xff0c;用最少的命令达到相同效果。 如图&am…...

第四次面试总结 — 嘉和智能 - 全栈开发

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对专栏 “本人真实面经” 很感兴趣o (ˉ▽ˉ&#xff1b;) 专栏 —— 本人真实面经&#xff0c;更多真实面试经验&#xff0c;中大厂面试总结等您挖掘 目录 总结&#xff08;非详细&#xff09; 面试内…...

tx-lcn使用

tx-lcn是啥 tx-lcn是一个分布式事务框架&#xff0c;有两个模块组成管理端&#xff08;server&#xff09;和client端。 管理端用于分布式事务的注册&#xff0c;事务消息接收&#xff0c;事务消息下发等管理工作。 client端包括事务发起方&#xff0c;事务参与方。 LCN名称是…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...